シングルサインオン (SSO) ログインのリダイレクト
SSO を有効にすると、ユーザーを特定のページにリダイレクトしたり、ユーザーにローカルログインを誘導したりすることができます。
たとえば、ユーザーが
https://customerX.service-now.com にアクセスしようとすると、デフォルトのログインページの代わりに社内ポータルが表示されます。または、ユーザーがアプリケーションからログアウトするときに、ブラウザーはユーザーを特定の内部ページにリダイレクトできます。インスタンス内でリダイレクトプロパティを設定して、ユーザーにデフォルトのログインページではなく SSO ログインページが確実に表示されるようにできます。 注:
次のプロパティは SSO を強制しません。login.do ページには引き続きアクセスでき、ユーザーは、ローカルパスワードを設定していればシステムにログインできます。
リダイレクトのプロパティ
ユーザーがログアウトした場合、または SSO を使用したサインオンに失敗した場合に、ユーザーが次に移動する場所 (メインポータルページや SSO ログイン情報を含むナレッジベース記事) を定義できます。URL を指定するには、次のプロパティを使用します。これらのプロパティのいずれかがインスタンスに存在しない場合は、プロパティを作成できます。
- glide.authenticate.failed_requirement_redirect
- ユーザーがプライベートページにアクセスしようとしたときに (インシデントを表示しようとした場合など)、SSO 認証情報を提供しない場合にリダイレクトされる URL。通常、このプロパティは顧客のログインポータル (
http://portal.companya.com/など) に設定されます。 - glide.authenticate.failed_redirect
- SSO 試行の失敗後にユーザーをリダイレクトする URL。エラーについての説明と役に立つリンクがある公開ナレッジ記事にリダイレクトできます (例:
http://portal.companya.com/error)。 - glide.authenticate.external.logout_redirect
- ログアウト後にユーザーをリダイレクトする URL。通常はシングルサインオンログインを有効にしたポータルに戻ります (
http://portal.companya.com/logoutなど)。 - glide.authentication.external.disable_local_login
- true に設定すると、メインログインページの SSO 認証情報が必要になります。デフォルト:false このプロパティは、glide.authenticate.failed_requirement_redirect プロパティと組み合わせて使用する必要があります。
次の表は、インストレーションイグジットの戻り値、プロパティ、および予想される動作の関係を示しています。
| 値を返す | プロパティ | 動作 |
|---|---|---|
failed_missing_requirement |
glide.authenticate.failed_requirement_redirect | この値が返された場合は、必要な SSO 認証情報がセッションに存在しないことを示しています。ログインに失敗し、セッションはプロパティで指定された URL にリダイレクトされます。これは通常、ログインが要求され、認証情報が収集される SSO プロバイダーの URL です。 |
failed_authentication |
glide.authenticate.failed_redirect | この値が返される場合は、指定された SSO 認証情報が認証に失敗したか、ユーザーが存在しないか、ユーザーがロックアウトされていることを示します。ログインに失敗し、セッションはプロパティで指定された URL にリダイレクトされます。これは通常、ログインが要求され、認証情報が収集される SSO プロバイダーの URL です。 |
<user_id> |
適用外 | <user_id> で指定されたユーザーにログインが許可されます。この値は、SSO プロパティ glide.authenticate.header.value (「受信ヘッダーと照合するために使用するインスタンスのフィールド名 (the instance's field name to match against the incoming header)」) で定義されたフィールド名と一致します。 |
ローカルログインの制限
セキュリティ上の予防措置として、ローカルログインを防ぐために、リダイレクトプロパティを使用する以上のことをする必要があります。ユーザーがローカルにログインせず、常に内部のシングルサインオンシステムによって認証される場合は、インスタンスにインポートする各ユーザーにランダムなパスワードを割り当てる必要があります。ランダムなパスワードは、ユーザーのインポート時に最も簡単に設定できます。ユーザーデータがインポートセットを介してシステムにインポートされる場合は、次のコードを使用して onBefore 変換スクリプトを作成できます。
var r = new Packages. java. util. Random ( ) ;
var str1 = Packages. java. lang. Long. toString (Packages. java. lang.
Math. abs (r. nextLong ( ) ) , 36 ) ; var str2 = Packages. java. lang.
Long. toString (Packages. java. lang. Math. abs (r. nextLong ( ) ) , 36
) ;
var newPass = str1 + str2 ;
target. user_password = newPass ;
//password now set to a random string like this:
//qvm81zdrn7cwwylpvw94eebk