Azure ADをSAML IDプロバイダーとして、NetScalerをSAMLサービスプロバイダーとして構成する
SAML サービスプロバイダー (SAML SP) は、サービスプロバイダーによってデプロイされる SAML エンティティです。ユーザーが保護されたアプリケーションにアクセスしようとすると、SPはクライアント要求を評価します。クライアントが認証されていない (有効な NSC_TMAA または NSC_TMAS Cookie がない) 場合、SP は要求を SAML ID プロバイダー (IdP) にリダイレクトします。また、SP は IdP から受信した SAML アサーションも検証します。
SAML アイデンティティプロバイダー (SAML IdP) は、顧客ネットワークにデプロイされる SAML エンティティです。IdP は SAML SP からリクエストを受信し、認証情報を入力する必要があるログオンページにユーザーをリダイレクトします。IdP は、これらの認証情報をユーザディレクトリ(LDAP などの外部認証サーバ)で認証し、SP に送信される SAML アサーションを生成します。SPはトークンを検証し、要求された保護されたアプリケーションへのアクセス権をユーザーに付与します。
次の図は、SAML 認証メカニズムを示しています。
Azure AD サイド構成
シングルサインオン設定を構成します。
-
Azure ポータルで、[ Azure Active Directory] をクリックします。
-
ナビゲーションペインの「 管理 」セクションで、「 エンタープライズアプリケーション」をクリックします。Azure AD テナント内のアプリケーションのランダムなサンプルが表示されます。
-
検索バーに「 Azure AD 用 NetScaler SAML コネクタ」と入力します。
-
[ 管理 ] セクションで、[ シングルサインオン] を選択します。
-
[ SAML ] を選択して、シングルサインオンを構成します。[ SAML でシングルサインオンを設定する-プレビュー ] ページが表示されます。ここで、Azure は SAML IdP として機能しています。
-
基本的な SAML オプションを設定します。
識別子 (エンティティ ID) -一部のアプリで必須です。シングルサインオンが設定されているアプリケーションを一意に識別します。Azure AD は、SAML トークンのオーディエンスパラメータとして識別子をアプリケーションに送信します。アプリケーションは、それを検証することが期待されます。この値は、アプリケーションによって提供されるすべての SAML メタデータにもエンティティ ID として表示されます。
返信 URL -必須。アプリケーションが SAML トークンの受信を期待する場所を指定します。応答 URL は、アサーションコンシューマサービス(ACS)URL とも呼ばれます。返信 URLをフォーマット
http(s)://<SP_URL>/cgi/samlauth
で指定します。サインオン URL -ユーザーがこの URL を開くと、サービスプロバイダーは Azure AD にリダイレクトしてユーザーを認証し、サインインします。
Relay State :認証の完了後にユーザーをリダイレクトする場所をアプリケーションに指定します。
-
SAML 署名証明書セクションから証明書 (Base64) をダウンロードします。この証明書は、NetScaler を SAML SP として構成する際に SAMLIDPCertName として使用されます。
-
Azure AD 側の構成が完了したら、アプリケーションへのアクセスを許可されているユーザーとユーザーグループを追加します。「 ユーザーとグループ 」タブに移動し、「 +ユーザー/グループを追加」をクリックします。
NetScaler側の構成
-
SAML アクションを作成します。
-
[ セキュリティ] > [AAA アプリケーショントラフィックポリシー] > [認証] > [詳細ポリシー] > [アクション] > [SAML] に移動します。
-
「 追加」をクリックし、次のパラメータの値を入力して、「 作成」をクリックします。
パラメータの説明:
太字のパラメーターの値は、Azure 側の構成から取得する必要があります。
-
Name:サーバーの名前
-
リダイレクトURL -Azure AD の「NetScaler セットアップ」セクションに以前使用したログインURLを入力します。
https://login.microsoftonline.com/3e6d1786-4e0c-4c70-86d2-ae7811f97f79/saml2
-
シングルログアウト URL-
https://login.microsoftonline.com/3e6d1786-4e0c-4c70-86d2-ae7811f97f79/saml2
-
SAML バインディング-SP と IdP の間で SAML リクエスタとレスポンダのメッセージを転送するために使用されるメカニズム。NetScalerがSPとして機能する場合、ポスト、リダイレクト、およびアーティファクトバインディングをサポートします。デフォルトのバインド方法は Post です。
-
ログアウトバインディング-SAML ログアウトメッセージの転送メカニズムを指定します。デフォルトのバインドメカニズムは Post です。
-
IDP 証明書名 - SAML 署名証明書セクションにある IDP 証明書証明書 (Base64)
add ssl certkey <IDP-CERT-NAME> -cert <Name of the downloaded IdP certificate> <!--NeedCopy-->
-
ユーザーフィールド -UserPrincipalName。Azure IdP の「ユーザー属性とクレーム」セクションから取得されます。
-
署名証明書名 -Azure AD では必要ありません。NetScalerがIdPへの認証要求に署名するために使用するSAML SP証明書(秘密キー付き)を選択します。IdP が認証要求署名を検証できるように、同じ証明書(秘密キーなし)を IdP にインポートする必要があります。このフィールドは、ほとんどの IdP では必要ありません。
-
発行者名-エンティティ ID または識別子。この場合は
https://gateway.nssvctesting.net
。負荷分散展開シナリオでは、負荷分散仮想サーバーのFQDNを使用する必要があります。 -
署名されていないアサーションを拒否-IdP からのアサーションに署名が必要な場合に指定できるオプション。デフォルトのオプションは [オン] です。
-
Audience-IdP によって送信されたアサーションが適用されるオーディエンス。これは通常、サービスプロバイダーを表すエンティティ名または URL です。
-
署名アルゴリズム-SAML トランザクションの署名/検証に使用されるアルゴリズム。デフォルト値は RSA-SHA256 です。
-
ダイジェスト方式-SAML トランザクションのダイジェストの計算/検証に使用されるアルゴリズム。デフォルト値は SHA256 です。
-
デフォルト認証グループ-抽出されたグループに加えて、認証が成功した場合に選択されるデフォルトグループ。
-
Group Name Field:ユーザグループを含むアサーション内のタグの名前。
-
スキュー時間(分)-このオプションは、NetScaler サービスプロバイダーが受信アサーションで許可するクロックスキューを分単位で指定します。たとえば、16:00 にスキュー時間を 10 分に設定した場合、SAML アサーションは 15:50 から 16:10(合計 20 分)まで有効です。デフォルトのスキュー時間は 5 分です。
-
2 つの要素- オフ
-
要求された認証コンテキスト-正確
-
認証クラスタイプ-なし
-
サムプリントを送信-オフ
-
ユーザー名を強制する-オン
-
認証を強制する-オフ
-
SAML レスポンスを保存-オフ
-
-
-
SAML アクションに対応する SAML ポリシーを作成し、そのポリシーを認証仮想サーバーにバインドします。
-
[ セキュリティ] > [AAA アプリケーショントラフィック] > [ポリシー] > [認証] > [詳細ポリシー] > [ポリシー ] に移動し、[ 追加] をクリックします。
-
「 認証 SAML ポリシーの作成 」ページで、次の詳細を入力します。
- 名前-SAML ポリシーの名前を指定します。
- Action Type - SAMLを認証アクションの種類として選択します。
- アクション-SAML ポリシーをバインドする SAML サーバープロファイルを選択します。
- 表現-ユーザーが SAML サーバーで認証する必要があるかどうかを判断するために SAML ポリシーが使用するルールまたは式の名前を表示します。テキストボックスに「rule = true」という値を設定すると、SAML ポリシーが有効になり、対応する SAML アクションが実行されます。
-
-
SAML ポリシーを VPN 仮想サーバーにバインドし、認証プロファイルを通じて VPN 仮想サーバーを認証仮想サーバーにリンクします。バインディング手順の詳細については、「 認証ポリシーをバインドする」を参照してください。
[セキュリティ] > [AAA-アプリケーショントラフィック] > [仮想サーバー] に移動し、SAML ポリシーを認証仮想サーバーに関連付けます。
注:
- Azure AD では、SAML リクエストのサブジェクト ID フィールドは想定していません。
- NetScalerがサブジェクトIDフィールドを送信しないようにするには、NetScaler CLIで次のコマンドを入力します。
nsapimgr_wr.sh -ys call="ns_saml_dont_send_subject"
このコマンドは nFactor 認証ワークフローにのみ適用されます。