ConnectedAppPlugin クラス
名前空間
使用方法
接続アプリケーションを作成するときは、アプリケーションに関する一般な情報と、OAuth、Web アプリケーション、モバイルアプリケーション、およびキャンバスアプリケーションの設定を指定します。アプリケーションの呼び出し方法をカスタマイズするには、この ConnectedAppPlugin Apex クラスを使用して接続アプリケーションハンドラを作成します。たとえば、このクラスを使用して、新しい認証プロトコルをサポートしたり、ビジネスプロセスにメリットがある形でユーザ属性に応答したりできます。
接続アプリケーションハンドラを作成する場合、ConnectedAppPlugin クラスも設定して、実行ユーザとして実行されるようにします。実行ユーザは、接続アプリケーションのアクセスを承認します。たとえば、authorize メソッドを使用する場合、実行ユーザは接続アプリケーションのデータへのアクセスを承認します。
実行ユーザを指定しない場合、プラグインは自動化プロセスユーザ (バックグラウンドでタスクを実行するシステムユーザ) として実行されます。customAttributes メソッドを除く大部分の ConnectedAppPlugin メソッドでは、実行ユーザを指定する必要があります。詳細は、「カスタム接続アプリケーションハンドラの作成」を参照してください。
例
この例では、コンテキストが SAML でユーザがカスタム項目で追跡される目標に達した場合、接続アプリケーションユーザによる接続アプリケーションの使用を承認します。ユーザの権限セットの割り当てが返されます。Auth.InvocationContext を使用して、サービスプロバイダに送信される前に SAML アサーションを変更します。
ConnectedAppPlugin のメソッド
ConnectedAppPlugin のメソッドは次のとおりです。
authorize(userId, connectedAppId, isAdminApproved)
authorize(userId, connectedAppId, isAdminApproved, context)
署名
public Boolean authorize(Id userId, Id connectedAppId, Boolean isAdminApproved, Auth.InvocationContext context)
パラメータ
- userId
- 型: Id
- 接続アプリケーションの使用を試みているユーザの 15 文字の ID。
- connectedAppId
- 型: Id
- 接続アプリケーションの 15 文字の ID。
- isAdminApproved
- 型: Boolean
- 接続アプリケーションで承認が必要な場合の指定されたユーザの承認状態。
- context
- 型: InvocationContext
- 接続アプリケーションが呼び出されるコンテキスト。
使用方法
ConnectedAppPlugin が現在のユーザの代わりに実行されます。ただし、プラグインが動作するには、このユーザに接続アプリケーションの使用権限が必要です。このメソッドを使用してユーザを認証します。
customAttributes(userId, connectedAppId, formulaDefinedAttributes)
customAttributes(userId, connectedAppId, formulaDefinedAttributes, context)
署名
public Map<String,String> customAttributes(Id userId, Id connectedAppId, Map<String,String> formulaDefinedAttributes, Auth.InvocationContext context)
パラメータ
- userId
- 型: Id
- 接続アプリケーションの使用を試みているユーザの 15 文字の ID。
- connectedAppId
- 型: Id
- 接続アプリケーションの 15 文字の ID。
- formulaDefinedAttributes
- 型: Map<String, String>
- UserInfo エンドポイント (OAuth) から、または SAML アサーションからの現在の属性セットの対応付け。詳細は、オンラインヘルプの「UserInfo エンドポイント」を参照してください。
- 型: InvocationContext
- 接続アプリケーションが呼び出されるコンテキスト。
modifySAMLResponse(authSession, connectedAppId, samlResponse)
署名
public dom.XmlNode modifySAMLResponse(Map<String,String> authSession, Id connectedAppId, dom.XmlNode samlResponse)
パラメータ
- authSession
- 型: Map<String, String>
- 承認されたユーザのセッションの属性。対応付けには、接続アプリケーションにアクセスしている、承認されたユーザの 15 文字の ID が含まれます。
- connectedAppId
- 型: Id
- 接続アプリケーションの 15 文字の ID。
- samlResponse
- 型: Dom.XmlNode
- IDP によって生成された SAML XML 応答が含まれます。
使用方法
このメソッドを使用して XML SAML 応答を変更し、検証、署名、および対象サービスプロバイダへの送信前に SAML 要求のコンテキストに基づいてアクションを実行できます。このメソッドにより、開発者は特定のニーズに合わせて接続アプリケーションプラグインを拡張できます。
開発者は、接続アプリケーションプラグイン内で行われる変更の全責任を負います。プラグインには、検証とエラー処理を含める必要があります。プラグインで例外が発生したら、キャッチしてログに記録し、プロセスを停止します。対象サービスプロバイダには何も送信しないでください。
refresh(userId, connectedAppId, context)
署名
public void refresh(Id userId, Id connectedAppId, Auth.InvocationContext context)
パラメータ
- userId
- 型: Id
- 更新トークンを要求しているユーザの 15 文字の ID。
- connectedAppId
- 型: Id
- 接続アプリケーションの 15 文字の ID。
- context
- 型: InvocationContext
- 接続アプリケーションが呼び出されるコンテキスト。
戻り値
型: void