フューチャー技術ブログ

Auth0でADをユーザDBにし、SalesforceとのSSOを確認する

エンタープライズの領域ではAD認証が多く利用されており、また同時にCRMとしてSalesforceが導入されているケースが多くあります。
この場合、社内システムにおける「統合認証」の要件として、これらを繋げてログインする必要が出てきます。

これらの要求に対応するため、以下2点を確認し、Active Directory(以降AD)を中心とした統合認証を試してみます。

  1. Auth0のApplicationsでAD認証ができることを確認
  2. 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ユーザでログインしてください。

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