SAML SSOとジャストインタイムプロビジョニング
SAML(Security Assertion Markup Language)は、シングルサインオン(SSO)を実現する仕組みのひとつで、OASISで策定されているXMLベースの標準規格です。
一般的なSAML SSOの通信の流れは以下のようになります。
SalesforceではこのSAML SSOによるログインが可能です(上記の図の「Service Provider」がSalesforceに相当します)。
この方式でシングルサインオンする場合、サービスプロバイダ側にユーザ情報がなければログインできません。
ユーザ情報がないのですから当たり前ですよね。
このとき、ユーザ情報がなければついでにユーザ情報を作ってしまおうというのがジャストインタイムプロビジョニングという仕組みです。
今回はこのジャストインタイム(以下JIT)プロビジョニングをSalesforceでやってみようという試みになります。
長くなりそうなので2部に分けてやります。
前編では通常のSSOができるところまでやってみます。
Idpの設定
まずIdpの設定を行います。
今回はIdpとしてOkta Developerを使用します。
以下Okta Developerの画面を基準に話しますので、他のIdpをご利用の方はそちらで置き換えてください。
アプリケーションの作成
左の「Applications」から「Applications」を選択し、「Create App Integration」をクリックします。
モーダルが出てくるので、「SAML 2.0」を選択して「Next」をクリックします。
アプリケーションを入力して「Next」をクリックし、必要事項を入力します。
赤枠のところを入力するだけでOKです。入力内容は以下のとおりです。
【Single sign-on URL】SSOするSalesforce組織のログインURL
【Audience URI (SP Entity ID)】SSOするSalesforce組織のログインURL
【Application username】「Email」を選択
※「私のドメイン」を設定する必要があります。設定していない場合はSalesforce側で設定しておいてください。
入力が終わったら下の方にある「Next」をクリックします。
その後、ページが遷移しますので「I’m an Okta customer adding an internal app」を選択して、下の方にある「Finish」をクリックします。
これでIdp側の設定は一旦完了です。
最後に、遷移したページの下の方にある「View SAML setup instructions」をクリックします。
こんな画面が出ます。
以下の項目をコピー、ダウンロードしておきましょう。Salesforce側の設定で使います。
①Identity Provider Single Sign-On URL
②Identity Provider Issuer
③X.509 Certificate(証明書ファイルをダウンロード)
SalesforceのSSO設定
次にSalesforceでSSOの設定を行います。
SSOの設定
クイック検索に「シングルサインオン」と入力し、「シングルサインオン設定」をクリックします。
以下の画面になるので、まずは「編集」ボタンをクリックします。
「SAMLを有効化」にチェックを入れて「保存」ボタンをクリックします。
保存後、元の画面に戻るので「SAML シングルサインオン構成」のところにある「新規」ボタンをクリックしてSSOの設定を作成します。
入力画面はこんな感じです。ここは入力情報が多いです。
入力内容は以下のとおりです。
【名前】なんでもOK
【API参照名】半角英数字ならなんでもOK
【発行者】前項でコピーした②の値
【エンティティID】前項で設定した「Audience URI (SP Entity ID)」の値
【ID プロバイダの証明書】前項でダウンロードした③の証明書ファイル
【証明書の署名要求】「自己署名証明書を生成」を選択
【証明書要求メソッド】「RSA-SHA256」を選択
【アサーション復号化証明書】「アサーション復号化なし」を選択
【SAML ID 種別】「アサーションには、ユーザオブジェクトの統合 ID が含まれます」を選択
【SAML ID の場所】「ID は、Subject ステートメントの NameIdentifier 要素にあります」を選択
【サービスプロバイダの起動要求バインド】「HTTP ポスト」を選択
【ID プロバイダのログイン URL】前項でコピーした③の値
入力が完了したら「保存」をクリックします。これでSSOの設定は完了です。
SSOさせる設定
Salesforceのログイン画面からOktaのログイン画面に誘導するボタンを設置します。
SSO用リンクの設置
クイック検索に「私のドメイン」と入力し、「私のドメイン」をクリックします。
以下の画面になるので、「認証設定」セクションにある「編集」ボタンをクリックします。
「認証サービス」セクションに、先ほど作成したSSO設定がありますので、それにチェックを入れて「保存」ボタンをクリックします。
終わったら一旦Salesforceからログアウトしてみましょう。
ログイン画面に見慣れないボタンが付きましたね。これがSSO用のボタンになります。
クリックするとOktaのログイン画面に飛びます。
SSOするユーザの設定
あと少しでSSOできるようになります、がんばりましょう。
通常のSSOをするためにはユーザが必要ですので、Okta側とSalesforce側でユーザ情報を登録します。
【Okta】ユーザ作成
左の「Directory」から「People」を選択し、「Add Person」をクリックします。
モーダルが出てくるので、必要事項を入力して「Save」をクリックします。
赤枠のところは画面通りでOKです。これでOktaにログインできるユーザができました。
【Okta】SSO権限付与
ユーザができたので、次にSSOする権限を付与します。
左の「Applications」から「Applications」を選択し、作成したアプリケーションの右側にある歯車アイコンをクリックし、「Assign to Users」をクリックします。
権限を付与したいユーザの右にある「Assign」をクリックし、問題なければ「Save and Go Back」ボタンをクリックします。
これで権限が付与されました。
【Salesforce】ユーザの紐づけ
OktaからSSOしようとしたユーザが、Salesforce内のどのユーザであるのか判別する必要があります。
今回は組織内のシステム管理者を試しに紐づけてみます。
シングルサインオンを有効にすると、ユーザ管理情報画面の中に見慣れない項目が増えます。
新しく増えたこの「統合ID」がユーザを判断するキーになります。
今回はこの統合IDにOktaユーザのメールアドレスを送るように設定しているので、Oktaユーザのメールアドレスをここに入力して保存します。
紐づけはこれだけでOKです。
以上で設定は完了です。お疲れ様でした。
動作確認
動作確認をしてみましょう。
問題なく動いてますね。
次回はJITの根幹部分に迫っていきます。更新をお楽しみに!
弊社にはSalesforceのスペシャリストが多数在籍しております。
何かお困りごとがございましたら、下記ボタンからお気軽にご相談くださいませ。
お問い合わせはこちら