【レポート】AWSにおけるIdentity Federationのフルコース #reinvent #SID344

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、臼田です。

今回はre:Invent 2017で行われましたSID344 - Soup to Nuts: Identity Federation for AWSについてレポートします。

レポート

  • このセッションはAWSでサポートしている様々なID連係について解説 + デモを行います

  •  用語の定義
    • IDプロバイダ
      • IDストアである
      • 認証・認可を大まかに行う
    • IDコンシューマ
      • ストアの参照
      • 認可を詳細に行う
    • 相互の関係性
      • 相互に信頼
      • プロトコルベースのやりとり
      • 同期しない
  • それぞれのアクセスについて理解する
    • contole plane(管理アクセス)
    • data plane(データアクセス)
    • それぞれのplaneでpath, credentials, protocols が違う
    • 管理アクセスとデータアクセスはそれぞれ別に考える必要がある

SAML

  • SAML入門
    • Identity provider (IdP)
      • ID(例えばユーザIDやパスワード等)を管理する
    • Service provider (SP)
      • IdPを利用する、自分では直接認証・認可しない
    • Metadata (in advance)
      • 事前に共有する関連情報(オプション)
    • User
      • SPのサービスを利用する
      • 認証・認可自体はIdPのアカウントで行う
    • Assertion
      • ユーザの認証・認可・属性などをやりとりする
      • XML形式

  • SAML federation
    • 社内ID基盤(AD等)を利用して外部サービスと連携する
    • SAMLで認証情報をブリッジングする
    • ADユーザがIdPからSAML経由でAWSリソースへアクセス
    • Cognitoと連携することもできる

  •  demo1
    • IAMでIdPを設定
    • roleでSAMLの設定
    • プロバイダで先程のIdPを指定
    • 紐付けるRoleを選択 or 作成
    • 簡単にできた
    • ADFS使ってADと連携しよう
    • ユーザごと複数のRoleを選択することもできる
    • デモ内容の情報はおそらくこちら

  • cognitoとの連係demo
    • SPAのデモページ
    • SAML未対応の状態では、ログイン画面で通常のフォームだけ表示される
    • cognitoのユーザプールからSAMLの設定が可能
    • IdPをTrustする
    • 再度ログイン画面を見ると、別の認証方式としてSAMLを表示できた
    • トークンが払い出された
    • chaliceのIAM Authorizer等を使うと作りやすい
    • 参考情報はこちら

Open ID Connect

  •  OIDC入門
    • OpenIDプロバイダ (OP)
      • IDを管理
    • Relying Party (RP)
      • OPを利用したい別のアプリケーション
      • IDを管理しない
    • Metadata & Registration (in advance)
      • 登録及びメタデータのやりとり
    • User
      • OPとやり取りして認証
    • Tokens
      • JSON Web Token (JWT)形式のトークン

  • OIDC federation
    • 外部サービスに対してOIDCは利用できる
    • SNSアカウント等
    • ローカルのAD管理外の別アプリケーションでも利用できる

  •  demo
    • cognito user poolでAmazonのアカウントでアクセス
    • 払い出されたIDが確認できた
    • 参考情報はこちらこちら

まとめ

AWS各種サービスとのID連係は参考になる情報も多く実施しやすいと思います。各種リンク先の内容を参考に構築してみてはいかがでしょうか?

ガンガンシステムを連携してエコシステムを実践しましょう!

なおこの他にも、Kerberos認証についても説明がありましたが、こちらは別セッションの都合で聴講できなかったので省略します。