1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Cloudflare Zero Trust で SaaS アプリ登録をテストする (SAML Test Service Provider)

Last updated at Posted at 2022-06-02

Cloudflare Access

SaaS アプリケーションへアクセスすることを想定したときに、Cloudflare Access が間に入ることで IdP アグリゲータや IdP プロキシのような役割を果たします。

SaaS applications · Cloudflare Zero Trust docs
Cloudflare Access allows you to integrate your SaaS products by acting as an identity aggregator, or proxy. This way, users cannot login to SaaS applications without first meeting the criteria you want to introduce.
SaaS applications diagram

例えば、設定できるポリシーには以下のような項目があり、デバイスポスチャや国別で場所を指定するなどの条件を組み合わせて構成できます。

image-20220602151853797

事前準備

事前に OTP もしくは IdP 連携により認証先の準備をします。

テスト用 SaaS アプリポリシー作成

SAML Test Service Provider を使います。

Test SAML, Configure SSO Using a Free-to-Use Application - JumpCloud

Access > Applications > Add an application から SaaS を選択して、ポリシー作成します。

image-20220603000240552

次に Entity IDAssertion Consumer Service URL にテスト用 SaaS アプリの設定を入れます。

Name ID はどちらでも構いません。

sptest.iamshowcase.com/testsp_metadata.xml

testsp_metadata.xml
<?xml version="1.0" encoding="UTF-8"?>
<md:EntityDescriptor xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" entityID="IAMShowcase" validUntil="2025-12-09T09:13:31.006Z">
   <md:SPSSODescriptor AuthnRequestsSigned="false" WantAssertionsSigned="true" protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">
      <md:NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified</md:NameIDFormat>
      <md:NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress</md:NameIDFormat>
      <md:AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://sptest.iamshowcase.com/acs" index="0" isDefault="true"/>
   </md:SPSSODescriptor>
</md:EntityDescriptor>

image-20220603000747620

今回はポリシーを全員許可に設定します。

image-20220603001156241
image-20220603001207525

最後に SP initiated SSO ログインを設定するための情報が表示されますが、後で確認します。

image-20220603001411893

IdP initiated SSO ログインテスト

Service Provider からみると Cloudflare Access が IdP のように振る舞います。

IdP initiated SSO and SP Initiated SSO with SAML | by Dinuwan Kalubowila | Medium
img

https://<org_name>.cloudflareaccess.com から App Launcher を起動し、先ほど定義した「SAML Test Service Provider」にアクセスします。

image-20220603002325611

その後、ログインに成功すると、各種情報を確認できるページが表示されます。

image-20220603002535656
image-20220603002633681

SP initiated SSO ログインテスト

Service Provider からみると Cloudflare Access が IdP のように振る舞います。

IdP initiated SSO and SP Initiated SSO with SAML | by Dinuwan Kalubowila | Medium
img

作成したアプリケーションポリシーから SSO endpointPublic key Entity ID を参照して使います。

image-20220603003748767

IdPメタデータ作成ツール https://www.samltool.com/idp_metadata.php に入力し、生成された XML をコピーします。

Single Logout Service Endpoint には https://<org_name>.cloudflareaccess.com/cdn-cgi/access/logout が使えます。

image-20220603004101777
image-20220603004243939

https://sptest.iamshowcase.com/instructions#spinitSubmit XML し、ログインテストを開始します。

image-20220603003037596

ユニークログオン URL が表示されるので、アクセスします。

image-20220603003124454

その後、ログインに成功すると、各種情報を確認できるページが表示されます。

image-20220603002535656

まとめ

Cloudflare Access を使って SaaS アプリケーションのポリシー制御を行うには、IdP Initiated と SP initiated の両方を意識した上で設定を確認する必要があります。

今回のテストを踏まえると、既存の SaaS アプリへのログインフローの Before & After について、具体的なイメージを持って構成できるでしょう。

他にも AuthNRequest を使って、特定ユーザに指定した認証方式の要求などを試すことができます。

参考

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?