DirectLogin() の実装
OAuth 2.0 承認サーバとして InterSystems IRIS® を使用するときは、通常、認証クラスの DisplayLogin() メソッドを実装します。このメソッドは、ユーザがユーザ名とパスワードを入力してログインするページを表示します。サーバによる認証時にログイン・フォームを表示せず、現在のセッションも使用されないようにする場合は、認証クラスの DirectLogin() メソッドを実装します。以下のフローチャートは、アクセス・トークンの要求を処理するときに InterSystems IRIS 承認サーバがユーザを識別する仕組みを示しています。
既定では、GetUser() メソッドは、前のログインで入力されたユーザ名を取得します。
DirectLogin() を実装すると、DisplayPermissions() は呼び出されません。DirectLogin() は許可を表示する役割を果たすからです。
DirectLogin() メソッドには、以下のシグニチャがあります。
ClassMethod DirectLogin(scope As %ArrayOfDataTypes,
properties As %OAuth2.Server.Properties,
Output username As %String,
Output password As %String) As %Status
以下はその説明です。
実装では、独自のロジックを使用して username および password 引数を設定します。そのためには、必要に応じて scope および properties 引数を使用します。アクセスを拒否するには、メソッドで username 引数を $char(0) に設定します。この場合、承認サーバは access_denied のエラーを返します。
メソッドで properties のプロパティを設定することもできます。このオブジェクトは後続の処理で利用できます。
このメソッドは %StatusOpens in a new tab を返す必要があります。