salesforceとのSSO構築が完了したので、少し仕組みをのぞいてみることにしました。
Azureから連携する属性を変えて、検証してみたいと思います。
SSOの設定は、デフォルトではUPN属性がサードアプリに連携されます。
サードアプリではデフォルトで連携する属性値が決まっているようです。
workplaceならメールアドレス
salesforceならユーザー名
servicenowならEmail
って感じですね。
サードアプリのどこかの属性にUPNが入っていたら、勝手に連携してくれるわけではないみたいなので注意が必要です。(できると思ってた自分・・・・笑)
それとサードアプリ側がどういった情報を受けとれるかも、確認しておく必要があります。
例えば jobTitleで連携する場合、本当にその属性値が受け取れるかを確認しておかないといけません。
Saleforceでは【ユーザー名】がデフォルト属性値がとして設定されていますが、ユーザー名に"account1"と入力しても登録できませんでした。エラー画面に、メールアドレスと同じ形式にしてくださいと書いてあるので、メールアドレス形式でしか設定できないようですね!!
メールアドレス形式なら登録できました。ここではaccount1@ドメイン名で登録してみます。
単純に同じ文字列を連携しても面白くないので、
少し設定をいじってみようと思います。
testアカウントの役職を"account1"にしてみます。
このまま連携しても、Saleforce側のユーザー名が違っているので、SSOは失敗するはずです。
ですのでシングルサインオンの要求と管理からメールアドレスの形に変更してみます。
ソースから"変換"を選択します。
変換の管理画面で"join(連結)"を以下のように設定します。
ドメイン名はAzureに登録されているドメイン名を選択できます。
これでaccount1@ドメイン名 の情報が連携されるはずです。
実際にテストしてみます。
本当に設定した属性値が連携しているのか、fiddlerを使って確認してみます
値はAzureADにからレスポンスされる SAMLresponseに格納されています。
中身は暗号化されているのでデコードしてみると
ちゃんとaccount1@ドメイン名 が連携されているようです。良かった。
属性値の連携について少し理解が深まりました。
属性値の連携は色々カスタマイズ出来るようですね。
”文字列” @ ドメイン名 の連携は顧客要件によって利用する場合も
あるので備忘録として残しておきます。
参考になれば幸いです。(^^)