パートナーに公開したいセキュリティで保護された Web アプリケーションがあり、パートナーのクライアントは、アプリケーションでホストされているフォームに直接情報を取り込むことができます。
フォームは、パートナーの Web アプリケーションに埋め込まれた iframe に表示されます。iframe の URL は私のアプリケーションを指し、パートナーが iframe をレンダリングする前にパートナーに発行した何らかの形式のセッション トークンが含まれます。
アプリにユーザーの資格情報を保存したくありません。必要なのは、ユーザーがパートナーによって認証され、ホストしているアクションを実行する権限があることをパートナーと検証するメカニズムだけです。
私は SAML と oAuth を見てきましたが、ID プロバイダーが実装するにはどちらも非常に複雑に思えます。複雑さのほとんどを自分で実装し、パートナーに統合の簡単な手段を提供したいと考えています。
つまり、重要なのは、ID プロバイダーにとってシンプルなソリューションを見つけることです。
例:
パートナーは、定義済みのエンドポイントを介してセッション トークンを要求します (ユーザーが実行する必要があるアクション、ユーザーのユーザー名または ID、および応答を検証するためのクライアント トークンを指定します)。
https://myapp.com/getsession/?username=bob&action=action1&token=CLIENT_SESSION_TOKEN
SERVICE_SESSION_TOKEN を返します。
パートナーは、次の URL を含む iframe をアプリに埋め込みます。
https://myapp.com/action1/?username=bob&token=SERVICE_SESSION_TOKEN
トークンを検証し、action1 を実行する権限を持つユーザーの認証済みセッションを作成します。
action1 のフォームを返すと、iframe にレンダリングされます。
ユーザーがフォームを送信すると、iframe をリダイレクトすることでパートナーに通知できます。
https://partner.com/action1_callback/?username=bob&token=CLIENT_SESSION_TOKEN&result=RESULT
そのようなプロトコルをサポートする標準はありますか? oAuth と SAML により、ID のプロビジョニングが非常に複雑になります。