2
2

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 3 years have passed since last update.

LookerAdvent Calendar 2020

Day 5

Azure AD を IdP にしてSAMLでSSOする方法

Posted at

Looker Advent Calendar 2020 5日目の記事です。

こんにちは、株式会社 Speee でエンジニアをやっています mistral です。

Lookerにログインする方法はパスワード認証の他にGoogle、LDAP、SAML、OpenID Connect での SSO に対応しています。
弊社では Azure AD による SSO 基盤が存在しており、SAML を使った連携が可能です。
今回はこれで何が実現でき、どうやって設定するかを解説したいと思います。

何ができるようになるか

  • Azure AD での認証で Looker にログインできる
    • Looker上にユーザーが作成されていなくても Azure AD 上でログインできるように設定しておくことで初ログイン時に自動的にユーザーが作成されます
  • Azure AD 上でユーザー毎に設定されている属性を Looker で利用することが可能
    • Look ML 上から Azure AD に登録されているユーザー属性が利用できるよにうなるため Looker 上で各ユーザーに対してカスタム属性を付与する必要がなくなります
  • Azure AD 上のグループ単位での権限設定が可能
    • グループ毎に適切な権限を付与できるので Looker 側から直接各ユーザーへ権限設定する必要がなくなります
  • Looker で直接権限設定を抑止でき Azure AD 側で統一した権限管理が可能
    • SAML でログインしたユーザーに対して Looker 側から直接権限を設定することを抑止するようなオプション群が用意されています

設定方法

Azure AD による SAML 連携を行うためには、Azure AD 側と Looker 側でそれぞれ設定が必要となります。

Azure AD 側設定

エンタプライズアプリケーションの作成

ss10.png

  • Azure AD ギャラリーから Looker と入力し Looker Analytics Platform を選択
  • アプリケーションの名前を入力して作成

Looker アプリケーションの設定(シングルサインオン)

ss12.png

  • エンタープライズアプリケーションから上記アプリケーションを選択
  • サイドバーナビゲーションからシングルサインオンを選択
  • SAMLを選択

基本的な SAML 構成

ss13.png

  • 識別子 (エンティティ ID)
    • Lookerを利用しているドメイン
      • 例: sample.jp.looker.com
  • 応答URL
    • Lookerを利用しているURL + /samlcallback
      • 例: https://sample.jp.looker.com/samlcallback
  • サインオンURL、リレー状態、ログアウトURLは空白でOK

ユーザー属性とクレーム

ss14.png

  • SSOを提供するだけであればデフォルトのままでOK
    ss11.png

  • SAMLでログインしてきたユーザーの所属しているグループによって自動的に権限を付与したい場合、下記の手順を実行(詳細は後述)

    • グループ要求を追加する をクリック
    • クレームで返される必要があるのは、ユーザーに関連付けられているどのグループですか?
      • セキュリティ グループ を選択
    • ソース属性
      • グループID を選択
    • 保存 をクリック
  • もし Azure AD 側の属性を Looker でも参照したい場合は、新しいクレームの追加 から参照したい属性を設定します

SAML 署名証明書

  • フェデレーション メタデータ XML をダウンロードしておきます

Looker アプリケーションの設定(メンバー)

Looker にログインを許可するユーザーやグループを登録します。
後で Looker 側の設定の最後にテストできるようにするため最低限設定者だけでもメンバーに追加しておく必要があります。

Looker 側設定

SAML 認証はデフォルトでは設定できるようになっていないのでチャットサポートや
Looker Help Centerから依頼をすることで設定できるようになります。

SAML Authentication

ss09.png

  • ヘッダーナビゲーションから Admin -> SAML をクリックして SAML 設定ページへ遷移します
  • ページ上部のラジオボタンで Enabled を選択すると詳細な設定画面が表示されます

SAML Auth Settings

ss08.png

  • フェデレーション メタデータ XML をテキストエディタで開き、XMLをコピーして IdP Metadata 欄にペーストしてその下の Load ボタン をクリックすることで、IdP URLIdP IssuerIdP Certificate が自動的に入力されます
  • SP Entity / IdP Audience には Azure AD 側で設定した 識別子 (エンティティ ID) で入力したものと同様の値を入力する
    • 例: sample.jp.looker.com

User Attribute Settings

ss07.png

  • 下記の通りそれぞれの属性で参照するSAML属性名を設定します
ラベル
Email Attr http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress
FName Attr http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname
LName Attr http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname
  • もし Azure AD 側の属性を Looker でも参照したい場合は Attribute Pairings で対応関係を設定します。

Groups & Roles

Mirror SAML Groups を有効にすることで、ログインしたユーザーが所属しているグループから自動的に Role を割り当てることが可能です

Mirror SAML Groups Off の時

ss06.png

Looker への初回ログイン時に自動的にあらかじめ作成していた Group や Role の割り当てができます

  • New User Groups
    • 初回ログイン時に所属させる Group を指定(複数可)
  • New User Roles
    • 初回ログイン時に割り当てる Role を指定(複数可)
Mirror SAML Groups On の時

ss05.png

Azure AD 側設定 - ユーザー属性とクレーム でグループ情報を取得できるようにしておくことで Azure AD のグループ毎に Looker 側でも Group が作成され、Role の割り当てが可能になります。

  • Group Finder Strategy
    • Groups as values of single attribute (typical) を選択
  • Groups Attribute
    • http://schemas.microsoft.com/ws/2008/06/identity/claims/groups を入力
  • Preferred Group Name / Roles / SAML Group ID
    • Group Name(Custom Name)
      • Looker 側で作成する Group の名前
    • Roles
      • この Group に割り当てる Role を指定(複数可)
    • SAML Group ID
      • Azure AD 上のグループのオブジェクトID

Advanced Role Management

ss04.png

SAML ログインのユーザーに対して Looker 側からの直接 Role 付与を防止するなど権限管理に制限をかけることができます。

  • Prevent individual SAML users from receiving direct roles
    • SAMLログインのユーザーに直接 Role を付与することを防止する
  • Prevent direct membership in non-SAML groups
    • SAMLログインのユーザーを上記で設定したグループ以外のグループに所属させることを防止する
  • Prevent role inheritance from non-SAML groups
    • SAMLログインのユーザーは上記で設定したグループ以外で割り当てられている Role が付与されること防止する
  • Auth Requires Role
    • Role が付与されていないユーザーのログインを防止する

Migration Options

ss03.png

Email でのログインや Google でのログインしているユーザーにが SAML ログインに移行しても権限や作成したリソースを引き続き利用し続けられるようにどの属性で突合させるかを設定できます。

  • Alternate Login for Specified Users
    • Admin および「login_special_email」権限を持つ指定ユーザに対して、「/login/email」を介した代替の電子メールベースのログインを許可します
    • 万が一間違った設定で SAML 認証を有効にしてしまった時や、IdP 側に接続できなかったときにフォールバックできるようになります

Test User Authentication

ss02.png

上記設定を終えたら Test SAML Authentication をクリック。
クリックしたユーザーによりSAML認証を使ってLookerにログインを試行します。別タブでテスト結果が表示されます。

ss01.png

このタブでは SAML サーバーからのレスポンス内容や、レスポンスのパース状況、Looker側でどのように認識されるか等詳細にレポートされます。
エラーが発生していないか、意図通りの結果が得られているか確認できます。

Save and Apply Settings

ss15.png

I have confirmed the configuration above and want to enable applying it globally. のチェックボックスをクリックし、
Update Settings ボタンをクリックすることで、全体に設定を反映します。

このとき、もし他のSSO(Google等)を設定していた場合、これらは無効になってしまうので十分に動作確認を行ってからこの操作を行うこととおすすめします。

2
2
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
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?