7.11. SAML 認証¶
7.11.1. SAML 認証と Ericom Shield¶
Ericom Shieldは、ユーザー認証にSAMLをサポートしています。 Shield ProxyモードとProxyless(Redirection)モードの両方をサポートしています。
ユーザは SAML に基づいて識別でき、セッションプロファイルは SAML プロバイダからの情報に基づいて割り当てることができます。
Shield にアクセスすると、エンドユーザは ID プロバイダ(IdP)にログインするよう求められます。エンドユーザがすでに IdP から適切な SAML アサーションを受信している場合は、再度ログインする必要はありません。
SAML 認証を使用するには、以下の基本的な手順に従ってください:
ID プロバイダ(IdP)での手順
- Shield 用の SAML アプリケーションを作成します
- アプリケーションをユーザに割り当てます
- 属性値を設定します
Ericom Shield 管理コンソールで IdP 設定を定義します:
- IdP ログイン URL
- IdP 署名証明書
- IdP 復号化鍵
- IdP Audience
注意
ADFS では少し違いがありますが、とても似ているため、このセクションで詳しく説明します。
左側のメニューから、様々な SAML プロバイダの詳細な手順を確認してください。
7.11.2. OKTA¶
SAML アプリケーションを作成する¶
Oktaのユーザーアカウントに接続するか、開発/プレビュー用アカウントを作成します。プレビュー用アカウントを新規に作成する場合は、こちらにアクセスし、指示された手順に従ってください。
「 Partner Integration 」(パートナー統合)と「 Single Sign-On」(シングルサインオン)を選択します。

新しいアカウントをアクティブ化します(メールで送信されます)。指定された資格情報(一時的なパスワードを使用)でログインします。
ログインしたら、最初のページで「Classic UI」(クラシック UI)に切り替えます。

「Admin」(管理者)をクリックします。

「Applications」(アプリケーション)をクリックします。

「Add Application」(アプリケーションの追加)、「Create New App」(新しいアプリの作成)の順にクリックします。

プラットフォームのタイプとして「Web」を選択します。「SAML 2.0サインオン方法を選択します。

「Create」(作成)をクリックし、次のフォームにアプリケーション名、ロゴなどを入力します。

「次へ」をクリックします。
SAML の設定(フィールド名と割り当てる値)を構成します。
シングルサインオン URL を構成します- https://shield.ericomcloud.net/saml/assert/
Single Sign-on URL (シングルサインオン URL) | https://shield.ericomcloud.net/saml/assert/ |
Use this for Recipient URL and Destination URL (受信者 URL と 宛先 URL にこれを使用する) | チェックボックスをオン(有効)のままにします |
Audience URI(オーディエンス URI) | 任意の文字列(管理コンソールの「認証 | SAML 認証 | IdP Audience」と一致する必要があります) |
デフォルトのリレー状態(Default Relay State) | https://shield.ericomcloud.net/saml/assert/ |
Group Attribute Statements(グループ属性ステートメントを定義する方法については、以下を参照してください。
ユーザグループにアプリケーションを割り当てる¶
- グループを作成する
「Directory」(ディレクトリ)メニューに移動し、「Groups」(グループ)をクリックします。
「Add Group」(グループの追加)をクリックし、グループの名前を入力して、「Add Group」ボタンをクリックします。
そのグループで「Manage People」(ユーザの管理)をクリックし、このグループにユーザを追加します。
- アプリケーションをこのグループに割り当てる
作成した SAML アプリケーションにもどります。「Assignment」(割り当て)タブに移動し、「Assign」(割り当て)、「Assign to Groups」(グループへの割り当て)の順にクリックします。
割り当てる人/グループを選択し、「Assign」(割り当て)をクリックします。

グループ属性を設定する¶
次の手順を使用して、SAML レスポンスでグループ名を送信するようにアプリケーションを構成します: 「General」(一般)タブの「SAML Settings」(SAML の設定)で、「Edit」(編集)をクリックします。次のページに移動します。「Group Attribute Statements」(グループ属性ステートメント)の下にグループを追加します:
属性名「Shield-Groups」を追加します。Shieldグループ。
グループ名を追加するためのフィルタを定義します。
例えば、この例では、「Shield」という単語を含むグループ名を加えるようにアプリケーションに指示します。これは、ユーザがグループ「Shield」のメンバである場合、このグループ名が SAML 応答に含まれることを意味します。

「Next」(次へ)と「Finish」(完了)をクリックします。
ユーザーごとの属性値の設定¶
アプリケーションに割り当てられたユーザーのテナントIDを構成します。[ディレクトリ]メニューで、[人]をクリックします。
ユーザーをクリックし、[プロファイル]タブに移動して、[編集]をクリックします。
[組織]フィールドで、テナントID(ShieldのシステムID)の値を設定します。

Shield の設定¶
管理コンソールの「認証 | SAML 認証(エンドユーザ)」に移動して、下図のフィールドを以下のように設定します:
- IdP ログイン URL(必須)
Okta の「Sign On」(サインオン)タブで、「Identity Provider metadata」(ID プロバイダのメタデータ)リンクを見つけます。XML ドキュメントが表示されます。
タグ「md:SingleSignOnService」を見つけて、「Location」(ロケーション)属性の値をコピーします。
Shield の IdP ログイン URL フィールドにペーストします。
- IdP 署名証明書 (必須)
同じ XML でタグ「ds:X509Certificate」を見つけ、このタグの値をコピーします(この値はエンコードされた文字列です。
Shield の IdP 署名証明書フィールドにペーストします。

- IdP 復号化鍵(オプション)
Oktaは、セキュリティ向上のために暗号化された SAML レスポンスを送信するように構成できます。これを行うには、Okta で証明書を構成し、その秘密鍵を Shield に提供して、SAML レスポンスを復号できるようにします。
- 証明書署名リクエスト(CSR)を生成する
コマンドシェルから、次を実行します:
openssl req -nodes -sha256 -newkey rsa:2048 -keyout PrivateKey.pem -out CertificateRequest.csr
証明書の属性に関する質問に答えます。すべてのデフォルト値を受け入れるには、「Enter」と入力します。
- 証明書を作成する
作成された CSR を使用、秘密鍵で署名し、公開証明書を作成します。
openssl x509 -req -days 365 -sha256 -in CertificateRequest.csr -signkey PrivateKey.pem -out idp.crt
- Okta を構成する
「SAML Settings」(SAML 設定)で、「Show Advanced Settings」(詳細設定を表示)をクリックします。

詳細設定で、アサーションを暗号化するように設定し、証明書(上図の例では idp.crt)をアップロードします。

PrivateKey.Pem から base 64 値をコピーします。
その文字列を Shield の IdP 復号化鍵にペーストします。
- IdP Audience(必須)
Okta の Audience URI(オーディエンス URL)フィールドに入力したものと同じ文字列を使用します。
Shield プロキシを構成して SAML サービスの URL を除外する¶
詳細は「Shield プロキシを構成して SAML サービスの URL を除外する」を参照ください。
7.11.3. Microsoft Azure¶
Azure でアプリケーションを公開するには、Azure サブスクリプションに対するグローバル管理者権限が必要です。
グローバル管理者の資格情報を使用して、Azureポータルにログインします
SAML アプリケーションを作成する¶
「Azure Active Directory」に移動し、次に「Enterprise applications」(エンタープライズアプリケーション)に移動します。

「New application」(新しいアプリケーション)を選択します。

「Non-gallery application」(非ギャラリー・アプリケーション)を選択します:

アプリケーション名を入力し、「Add」(追加)をクリックします。

アプリケーションが正常に作成されたら、「Single sign-on」(シングルサインオン)を選択します。

サインオン方法として、「SAML」を選択します。

「Edit」(編集)(ペンアイコン)をクリックして、 「Basic SAML Configuration」(基本的な SAML 設定)を編集します。
以下のフィールドに入力を行います:
- Identifier(識別子): 任意の文字列(大文字と小文字が区別されます)
- Reply URL(応答 URL): 次の値とする必要があります: https://shield.ericomcloud.net/saml/assert/

「Save」(保存)と「Close」(閉じる)をクリックします。
「Edit」(編集)(ペンアイコン)をクリックして、「User Attributes & Claims」(ユーザ属性と要求)を編集します。

「Add new claim」(新しい要求を追加)をクリックします。

Shield属性を追加します(オプション)。例: 「Name」(名前)は「Shield-Groups」に設定でき、「Source Attribute」(ソース属性)はこの値を持つユーザ属性にすることができます。 「保存」と「閉じる」をクリックします。
アプリケーションへのユーザの割り当て¶
「Users and groups」(ユーザとグループ)をクリックして、「Add user」(ユーザの追加)をクリックします。

割り当てるユーザまたはグループを選択し、「Select」(選択)と「Assign」(割り当て)を選択して確認します。
Shield の設定¶
管理コンソールの「認証 | SAML 認証」に移動します。以下のフィールドに入力を行います(その他のフィールドはオプションです):
- IdP ログイン URL
このフィールドでは Azure のログイン URL を指定します。Azure Application | Single Sign-On(Azure アプリケーション | シングルサインオン)タブに移動して、Login URL の値をコピーし、Shield のこのフィールドにペーストします。

- IdP 署名証明書
このフィールドでは Azure の証明書を指定します。Azure Application | Single Sign-On | SAML Signing Certificate(Azure アプリケーション | シングルサインオン | SAML 署名証明書)に移動してCertificate(Base64)(証明書 Base 64)を見つけてダウンロードします。

そのファイルを開き、base 64 でエンコードされた文字列(BEGIN CERTIFICATE と END CERTIFICATEの間にあります)をコピーします。Shield の IdP 署名証明書フィールドにペーストします。
最終的な結果の例:

- IdP Audience(IdP オーディエンス)
Azure アプリケーションの識別子(Entity ID)文字列として使用したものと同じ文字列を使用します(大文字と小文字が区別されます)。
Shield プロキシを構成して SAML サービスの URL を除外する¶
詳細は「Shield プロキシを構成して SAML サービスの URL を除外する」を参照ください。
7.11.4. ping¶
Ping で SAML アプリケーションを作成する¶
新しい Web App SAML アプリケーションを作成します。

「Provide App Metadata」(アプリのメタデータの提供)を「Manually Enter」(手動で入力)に変更します。
ACS URL には次を入力します: https://shield.ericomcloud.net/saml/assert/

Entity Id(エンティティ ID)まで下にスクロールして、Shield を入力します。
バインディングがHTTP POSTを使用していることを確認します。

Attribute Mapping(属性マッピング)で、有効な PING 属性を Name ID(名前属性)属性に渡します。
PING 属性が空の場合 1009 エラーが返されます。

設定を保存すると、アプリケーションが作成されます。
次に、「Configulation」(構成)に移動し、METADATA ファイルをダウンロードします。これは Shield の構成に必要になるためです。

Shield の設定¶
管理ポータルにログインし、「認証 | SAML 認証(エンドユーザ)」に移動します。
Ping METADATA ファイルを開きます。
X509Certificates のコンテンツをコピーします:

Shield IdP 署名証明書に貼り付けます:

HTTP-POST SSO ロケーション の URL をコピーします:

Shield IdP ログイン URL に貼り付けます:

最後に、Idp Audience に「Shield」と入力して設定を保存します。

この状態で Shield との接続をテストすると、Ping ログインページが表示されます。
7.11.5. ADFS¶
ADFS を Shield IdP として使用するには、以下の手順が必要です:
- ドメインコントローラで ADFS 証明書利用者を構成する
- ADFS を IdP として使用するように Shield を構成する
- Shield プロキシを使用するようにブラウザを構成する
ドメインコントローラで ADFS 証明書利用者を構成する¶
Active Directory フェデレーションサービス(ADFS)をインストールする
ドメインコントローラで、「管理 | 役割と機能の追加」を選択して、「次へ」をクリックします。

「サーバーの役割の選択」を選択し、「Active Directory フェデレーション サービス (ADFS)」のチェックボックスをオン(有効)にします。

「次へ」をクリックします。

以下のようにサービスを構成します:



証明書利用者信頼を作成する¶
ADFS は、Shield を「証明書利用者」(セキュリティ保護されたリソースへのアクセスを許可するサービスプロバイダ)として許可するよう構成する必要があります。
ドメインコントローラで、「ADFS の管理」を選択します。
左側ペインで、「証明書利用者信頼」を右クリックし、「証明書利用者信頼の追加」をクリックします。

証明書利用者を以下のように構成します:



暗号化証明書の構成はオプションです:

サービス URLを構成します - https://shield.ericomcloud.net/saml/assert/

証明書使用者信頼 IDを構成します。ADFS において一意の文字列を使用します。
重要
管理コンソールの「認証 | SAML 認証 | IdP Audience」でこの値を使用します。これらの値は一致する必要があります。これらの値は一致しなければなりません。
ADFS はこの文字列を元に使用する証明書利用者を識別します。



- 証明書利用者信頼の要求発行規則を編集する
要求は、ユーザが認証されると ADFS から証明書利用者に送信される属性です。要求は、LDAP 属性またはカスタム属性にすることができます。
「証明書利用者」を右クリックし、「要求発行規則の編集」を選択します。

「規則の追加」をクリックします。
LDAP属性の場合は、[LDAP属性をクレームとして送信]を選択します。同じルールで複数のLDAP属性を定義できます。

例: ユーザ LDAP 属性を追加する
以下の例では、最初の属性はUPN(Shieldに必要)であり、2番目の属性はユーザーのグループ(Shieldのオプション)です。

ADFS を IdP として使用するように Shield を構成する¶
- ADFS メタデータの取得
構成に使用するデータを取得するには、ADFS メタデータを取得します。ブラウザで次の URL に移動します:
https://<ADFSServiceURL>/FederationMetadata/2007-06/FederationMetadata.xml
FederationMetadata.xml という名前のファイルがダウンロードされます。そのファイルを表示し、以下の説明に従ってテナント管理 UI の各フィールドに値をコピーします。
- 管理コンソール
テナント管理の「認証 | SAML 認証」に移動し、以下の設定を行います:
有効 | True |
---|---|
IdP ログイン URL | この値は FederationMetadata.xml に表示されます。「Location=」を検索します。例:https:// <ADFSServiceURL> / adfs / ls |
IdP 署名証明書 | FederationMetadata.xml から X509Certificate をコピーします。「use = 「signing」」を検索し、証明書の内容をコピーして、このフィールドにペーストします。 |
IdP Decryption Key (IdP 復号化鍵) | 下記の手順を参照してください。 |
IdP Audience(IdP オーディエンス) | 証明書利用者信頼 ID として使用したものと同じ文字列を使用します。 |

暗号化された SAML を構成する¶
注意
このステップはオプションです。暗号化された通信で ADFS と Shield を構成する場合のみに必要です。
- 秘密鍵を使用して証明書を作成する
以下のコマンドを使用します:
openssl req -nodes -sha256 -newkey rsa:2048 -keyout encr.key -out request.csr
openssl x509 -req -days 365 -sha256 -in request.csr -signkey encr.key -out encr.cer
暗号化用に ADFS を構成する
ADFS 管理コンソールで「証明書利用者」を右クリックし、「プロパティ」を選択します。
「暗号化」タブで「参照」をクリックして、さきほど作成した encr.cer ファイルをインポートします。

- 復号用に Shield を構成する
テナント管理画面の「認証 | SAML」に移動し、さきほど作成した encr.key を使用して IdP 復号化鍵を構成します。
Shield プロキシを構成して SAML サービスの URL を除外する¶
詳細は「Shield プロキシを構成して SAML サービスの URL を除外する」を参照ください。
7.11.6. Shield プロキシを構成して SAML サービスの URL を除外する¶
Shield proxyがシステムで定義されていない場合、Shield proxyを使用するようにブラウザを設定します。
Shield プロキシから SAML URL を除外する¶
SAML 認証が期待どおりに機能することを確認するには、SAML サービスの URL をShieldプロキシから除外しなければなりません。そうしないと、SAML はまったく機能しません。
「インターネットオプション | 接続 | LAN 設定 | プロキシサーバー | 詳細設定」に移動します。表示されたポップアップで、例外リスト(下部)にSAML サービスの URLを追加します。
別のオプションとしては、PAC ファイルで SAML サービスの URL を除外する方法があります。