このページのトピック
SAMLシングルサインオンの実装
Deep Security Smart CheckでSAMLシングルサインオンを有効にすると、組織内のユーザが既存の組織アカウントで Deep Security Smart Check にログインできるようになります。IDプロバイダを使用して、次のようなユーザ認証アクセス制御機能を実装することもできます。
- パスワードの強度または変更の強制
- ワンタイムパスワード(OTP)
- 2要素認証または多要素認証(2FA / MFA)
Deep Security Smart Check では、SAML 2.0 IDプロバイダからのログインフローのHTTP POST
バインディングのみがサポートされ、サービスプロバイダからのログインフローはサポートされません。
Deep Security Smart CheckでSAMLシングルサインオンを使用するには
- Deep Security Smart Check をSAMLサービスプロバイダとして設定する
- IDプロバイダを信頼するように Deep Security Smart Check を設定する
- Deep Security Smart Check をIDプロバイダのサービスプロバイダとして設定します。
Deep Security Smart Check をSAMLサービスプロバイダとして設定する
Deep Security Smart Check サービスが smartcheck.example.com
で利用可能な場合は、 overrides.yaml
ファイルに次の設定を追加し、 helm upgrade
を実行して新しい設定を適用することで、SAMLを有効にできます。
auth:
saml:
enabled: true
location: smartcheck.example.com
helm upgrade \
--values overrides.yaml \
deepsecurity-smartcheck \
https://github.com/deep-security/smartcheck-helm/archive/master.tar.gz
この例では、 Deep Security Smart Check が deepsecurity-smartcheck
としてインストールされており、最新のソフトウェアリリースを使用しているものとします。必要に応じて、このコマンドを変更する必要があります。
IDプロバイダを信頼するように Deep Security Smart Check を設定する
メタデータURLを使用したIDプロバイダエントリの自動プロビジョニング
Deep Security Smart Check が、必要なメタデータを直接IDプロバイダに提供できる場合が最も簡単です。IDプロバイダーが identity.example.com
にある場合は、次のAPIリクエストを使用してIDプロバイダーを信頼するように Deep Security Smart Check を構成できます。
curl -X POST \
https://smartcheck.example.com/api/identity-providers/saml \
-H 'Authorization: Bearer [token]' \
-H 'Content-Type: application/json' \
-d '{
"name": "IdentityProvider",
"description": "My SAML identity provider. Contact identity@example.com for support.",
"metadataURL": "identity.example.com"
}'
Deep Security Smart Check は、IDプロバイダのメタデータをURLから定期的に更新します。
IDプロバイダがプライベート認証局によって発行された証明書を使用している場合は、信頼を確立するために認証局のルート証明書の提供が必要になることがあります。詳細については、 Deep Security Smart Check APIのドキュメントを参照してください。
メタデータXMLを使用したIDプロバイダエントリの手動プロビジョニング
Deep Security Smart CheckからIDプロバイダにアクセスできない場合は、IDプロバイダからSAMLメタデータを取得し、Base-64を使用してエンコードして、API要求に含めることができます。
curl -X POST \
https://smartcheck.example.com/api/identity-providers/saml \
-H 'Authorization: Bearer [token]' \
-H 'Content-Type: application/json' \
-d '{
"name": "IdentityProvider",
"description": "My SAML identity provider. Contact identity@example.com for support.",
"metadataXML": "[Base64-encoded metadata XML]"
}'
Deep Security Smart Check では、URLがないとIDプロバイダのメタデータを更新できないため、IDプロバイダのレコードを定期的に更新して、IDプロバイダでの変更と同期を保つ必要があります。
Deep Security Smart Check をIDプロバイダのサービスプロバイダとして設定する
IDプロバイダ管理者は、 Deep Security Smart Check をサービスプロバイダ(証明書利用者)として準備し、SAMLアサーションでセッション名とロールを送信するようにクレームトランスフォームを設定する必要があります。
メタデータURLを使用したサービスプロバイダエントリの自動プロビジョニング
IDプロバイダが必要なメタデータを直接 Deep Security Smart Check に問い合わせることができれば、最も簡単です。 Deep Security Smart Check が smartcheck.example.com
にある場合は、 Deep Security Smart Check をサービスプロバイダとして設定するときに、URL https://smartcheck.example.com/saml
をメタデータURLとして使用できます。
メタデータXMLを使用したサービスプロバイダエントリの手動プロビジョニング
Deep Security Smart Check が smartcheck.example.com
にある場合は、URL https://smartcheck.example.com/saml
を使用してサービスプロバイダのメタデータXMLを取得できます。 Deep Security Smart Check をサービスプロバイダとして設定するときに、サービスプロバイダのメタデータXMLをIDプロバイダ管理者に提供できます。
参照の要求
セッション名(必須)
クレームには、Name
属性がhttps://deepsecurity.trendmicro.com/SAML/Attributes/RoleSessionName``Attribute
エレメントと、1つのAttributeValue
エレメントが含まれるSAMLアサーションが必要です。Deep Security Smart Check は、セッション名として AttributeValue
を使用します。
通常、セッション名はIDプロバイダのユーザ名またはメールアドレスから取得されます。
ロールセッション名のSAMLデータの例(簡略版)
<samlp:Response xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol">
<Assertion xmlns="urn:oasis:names:tc:SAML:2.0:assertion">
<AttributeStatement>
<Attribute Name="https://deepsecurity.trendmicro.com/SAML/Attributes/RoleSessionName">
<AttributeValue>alice</AttributeValue>
</Attribute>
</AttributeStatement>
</Assertion>
</samlp:Response>
役割(必須)
クレームには、Name
属性がhttps://deepsecurity.trendmicro.com/SAML/Attributes/Role``Attribute
エレメントと、1~10個のAttributeValue
エレメントが含まれるSAMLアサーションが必要です。Deep Security Smart Check は、属性値を使用してセッションに割り当てられる役割を決定します。複数の役割がアサートされている場合、 Deep Security Smart Check では、セッションを開始する前に、アサートされた役割の1つを選択する必要があります。
通常、ロール名はIDプロバイダ内のユーザのグループメンバーシップから取得されます。
ロールのSAMLデータの例(簡略版)
<samlp:Response xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol">
<Assertion xmlns="urn:oasis:names:tc:SAML:2.0:assertion">
<AttributeStatement>
<Attribute Name="https://deepsecurity.trendmicro.com/SAML/Attributes/Role">
<AttributeValue>auditor</AttributeValue>
</Attribute>
</AttributeStatement>
</Assertion>
</samlp:Response>
Workload SecurityのSAML属性の形式に慣れている場合は、 Deep Security Smart Checkの方がユーザロール属性の形式が簡単であることがわかります。