エンタープライズの領域ではAD認証が多く利用されており、また同時にCRMとしてSalesforceが導入されているケースが多くあります。
この場合、社内システムにおける「統合認証」の要件として、これらを繋げてログインする必要が出てきます。
これらの要求に対応するため、以下2点を確認し、Active Directory(以降AD)を中心とした統合認証を試してみます。
- Auth0のApplicationsでAD認証ができることを確認
- SalesforceのSSO機能を利用し、Auth0経由でAD認証かつSSOができることを確認
Auth0とは?

Auth0導入編をぜひ参照ください。他にもAuth0関連の記事があります。
Auth0に「Active Directory / LDAP」Connectorを追加
設定追加
メニュー -> Connections -> Enterprise -> Active Directory / LDAP -> CREATE CONNECTION
メニューからConnectorを追加し、今回は2つのオプションを有効にしています
- Use Windows Integrated Auth (Kerberos)
Auth0はWindows統合認証(Kerberos認証)に対応しており、WindowsでAD認証でログインしており、かつIP Ranges
のIPでログインすると認証をスキップできます。 - Sync user profile attributes at each login
こちらはシンプルに認証時に最新のプロファイルをADから取得できる設定となっています。

ADサーバーの設定
Connector設定確認
追加済みのConnectorより、「Setup」タブを確認し Ticket Url
を控えておきます。
このTicket Url
がADサーバーの設定に必要となります。

ADサーバーにAD LDAP Connectorをインストール
インストール手順を参考に、ウィザードに従ってインストールしてください。
インストール時に前述の手順で控えたTicket Url
が必要になります。
AD LDAP Connectorの設定を変更
Auht0らしく、AD LDAP Connectorの設定をスクリプトで変更できる部分があります。
ProfileMapper(ADのユーザプロファイルとAuth0のユーザプロファイルのマッピング)のタブが、スクリプトで記載できる設定になっており、今回は詰められる情報を最大まで詰めてみました。
ここで設定したプロファイルがログイン時にAuth0に送信される情報となります。

ADとAuth0が接続できていることを確認
Auth0側のConnections
の表示が、Offline
からOnline
に変化します。

Applicationsでログイン確認
Applicationsの設定変更
ApplicationsでConnections
を有効化
Applicationsの設定でConnections
タブを開き、設定済みのADを有効化します。

ログインを確認
サンプルアプリケーションを利用し、ログイン後のプロファイルを確認します。
ここで、ADで設定済みのプロファイルが見えれば連携成功です。

プロファイルが取れるか確認
Auth0のRulesでプロファイルの取得を入れ込み、結果を見ます。

ADサーバーのAD LDAP Connectorで指定した情報が取れていることがわかります。
なお、ここまで確認できればAuth0上でユーザ情報を自由に扱えそうだと判断できます。
例えば、ログイン時にADからユーザ情報を透過的に移行するなどの対応も考えられます。


Salesforceの外部認証にAuth0を設定
Salesforceのアカウント準備
SSOの前提として、Auth0のドメイン設定を行う必要があります。
Salesforce側にADとSSOさせたいユーザを作成
SalesforceのSSOでは、Salesforce側に事前にSSOしたユーザの登録が必要です。
また、SSOさせる場合にSalesforceのユーザとADのユーザで、SSOに利用する属性情報を一致させる必要があります。
とはいえ、Auth0のログイン画面を使う場合、ADとSalesforceで一致させる属性はEmailが最善です。
今回はこの青枠ユーザをSSOで利用します。

Saleforceのドメイン設定
SSOにはドメイン設定が必要になるため、設定しておきます。
ここでAuth0に移ります。
auth0にSalesforce用のSSO設定を追加
SSO Integrations
からCREATE SSO INTEGRATION
を選択し、SalesforceのSSO設定を追加します
Salesforce側のドメインが必要になるので、Auth0の設定ページを確認しつつSalesforceから情報を取得してください。

Salesforceのドメインにhttps://
をつけたものがEntity ID
になります。

追加設定として、認証先をADに変更します。

ここで、Salesforceに移ります。
SaleforceのSSO設定追加
メニューのID->シングルサインオン設定
を選択し、新規
から接続設定を作ります。

Auth0のSalesforce設定ページにチュートリアルページあるので、手順に従い必須項目を埋めます。IDはattribute要素にあります
を選択し、email
を入力することを忘れないでください。
設定したemail
が、ADとSalesforceでSSOさせるユーザの一致属性となります。

SSOの確認
これでようやく設定完了です。
追加したSSOのログインボタンが現れますので、自ドメインの認証画面からSSOユーザでログインしてください。

ログインできれば成功です。
お疲れ様でした。