SSOとSAML

🔥 Vibe プロンプト

「SaaSアプリ用のSAML SSOを設定。Google WorkspaceまたはAzure ADに接続。」

SAMLフロー

ユーザー → SP (アプリ) → IdP (認証プロバイダー) → ログイン → SAML応答 → SP → アクセス許可

例: app.myapp.comにアクセス→Google Workspaceにリダイレクト→認証→戻る

SAML vs OIDC

| 項目 | SAML | OIDC | |------|------|------| | 形式 | XML | JSON | | トランスポート | HTTP redirect (POST) | HTTP (GET/POST) | | ユースケース | エンタープライズSSO | Web/モバイルアプリ | | 複雑さ | 高 | 低 | | 最適 | AD連携の大規模組織 | モダンアプリ、API |

Python実装

from onelogin.saml2.auth import OneLogin_Saml2_Auth

def saml_login(request):
    auth = OneLogin_Saml2_Auth(request, settings)
    return auth.login()

def saml_acs(request):
    auth = OneLogin_Saml2_Auth(request, settings)
    auth.process_response()
    if auth.is_authenticated():
        attributes = auth.get_attributes()
        return f"ようこそ {attributes['email'][0]}!"
    return "認証失敗", 401

主要用語

| 用語 | 意味 | |------|------| | SP | あなたのアプリ | | IdP | Google、Azure AD、Okta | | ACS URL | IdPがSAML応答を送信するURL | | Metadata XML | SPとIdP間の設定交換 | | NameID | ユーザー識別子(メール) |

ベストプラクティス

  • SAMLリクエストと応答に署名
  • 短いアサーション有効期限(5分)
  • IssuerとAudienceを検証
  • 機密データはアサーションを暗号化

重要なポイント

  • コアコンセプトをしっかり理解する
  • ハンズオンコード例で実践する
  • 実世界の問題に応用する
  • 演習で知識を強化する

さらに学ぶ

  • 公式ドキュメント
  • GitHubのオープンソースプロジェクト
  • コミュニティフォーラムとディスカッション
  • 関連コースとチュートリアル

完全なチュートリアルをロック解除

このチャプターは有料コンテンツです。プロジェクトに参加して、10以上の神レベルのPromptや実際のソースコード例を含む、5000字以上の深い分析をロック解除してください!