:mod: pyramid.authentication¶
(機械翻訳)認証ポリシー¶
-
class
AuthTktAuthenticationPolicy
(secret, callback=None, cookie_name='auth_tkt', secure=False, include_ip=False, timeout=None, reissue_time=None, max_age=None, path='/', http_only=False, wild_domain=True, debug=False, hashalg='sha512', parent_domain=False, domain=None)[ソース]¶ Aapp:Pyramid:用語:Pyramidauth ticketcookie" からデータを取得する `認証ポリシー ` 。
コンストラクタ引数
「秘密」
auth_tktクッキーの署名に使用される秘密(文字列)。この値は、さまざまなサブシステムの秘密(「ref: `admonishment_against_secret_sharing`参照)のためにPyramidに提供されるすべての値にわたって一意でなければなりません。必須。``コールバック ``
デフォルト: `` None``。コールバックはuseridと要求を渡しました。ユーザーIDが存在しない場合は `` None``、ユーザーが存在する場合はプリンシパル識別子のシーケンス(空の場合もあり)を返すことが期待されます。 `` callback``が `` None``の場合、ユーザIDはプリンシパルなしで存在するものとみなされます。オプション。`` cookie_name``
デフォルト: `` auth_tkt``。使用されたCookie名(文字列)。オプション。``安全 ``
デフォルト: `` False``。安全な接続でクッキーを送り返してください。オプション。`` include_ip``
デフォルト: `` False``。リクエストしているIPアドレスをクッキー内の認証データの一部にします。オプション。
IPv6の場合、このオプションはお勧めしません。 `` mod_auth_tkt``仕様はIPv6アドレスの扱い方を指定していないので、このオプションをIPv6アドレスと組み合わせて使用すると、互換性のないCookieが生成される可能性があります。認証チケットをその個人のIPv6アドレスに結び付けます。
``タイムアウト ``
デフォルト: `` None``。新しく発行されたチケットが有効と見なされる最大秒数。この時間が経過すると、チケットは有効期限切れになり(実際にユーザーをログアウトさせる)。この値が `` None``の場合、チケットは期限切れになりません。オプション。`` reissue_time``
デフォルト: `` None``。このパラメータを設定すると、認証が必要な要求の結果として認証トークンCookieが自動的に再発行されるまでに経過する必要がある秒数を表します。持続時間は、最後のauth_tktクッキーが発行されてからの秒数で測定され、 '今'です。この値が `` 0``の場合、認証が必要なリクエストごとに新しいチケットクッキーが再発行されます。
経験則の中で、非アクティブに基づいて自動期限切れのクッキーが必要な場合: `` timeout``値を1200(20分)に設定し、 `` reissue_time``値をおそらく `` timeout`の10分の1に設定してください`値(120分または2分)。 `` reissue_time``値よりも `` timeout``の値を低く設定するのは無意味です。チケットが再発行されることはありません。しかしながら、そのような構成は明白に防止されていない。
オプション。
`` max_age``
デフォルト: `` None``。 auth_tktクッキーの最大経過秒数。これは、 `` timeout``がクッキーに含まれるチケットの存続期間を表し、この値はクッキー自身の存続期間を表すので、 `` timeout``とは異なります。この値が設定されると、クッキーの `` Max-Age``と `` Expires``設定が設定され、ブラウザセッション間でauth_tktクッキーが存続するようになります。明示的には防止されていないが、これを `` timeout``や `` reissue_time``よりも低い値に設定するのは無意味です。オプション。``パス ``
デフォルト: `` / ``。 auth_tktクッキーが有効なパス。アプリケーションがドメインの一部としてしか機能しない場合は望ましいかもしれません。オプション。`` http_only``
デフォルト: `` False``。 HttpOnlyフラグを設定して、JavaScriptからCookieを隠します。すべてのブラウザで尊敬されるわけではありません。オプション。`` wild_domain``
デフォルト: `` True``です。ワイルドカードドメインのauth_tkt Cookieが生成されます。あなたのサイトが `` example.com``としてホストされている場合、 `` www.example.com``のような `` example.com``の下のサイトで利用できるようになります。オプション。`` parent_domain``
デフォルト: `` False``。現在のサイトの親ドメインに対してauth_tkt Cookieが生成されます。例えば、あなたのサイトが `` www.example.com``の下でホストされている場合、 `` .example.com``に対してクッキーが生成されます。これは、同じドメインを複数のサイトが共有している場合に便利です。このオプションは `` wild_domain``オプションに代わるものです。オプション。
このオプションは、app: Pyramid 1.5で利用可能です。
「ドメイン」
デフォルト: `` None``。 auth_tkt Cookieが提供されている場合、このドメインに対してのみ設定されます。このオプションは `` wild_domain``と `` parent_domain``と互換性がありません。オプション。
このオプションは、app: Pyramid 1.5で利用可能です。
「ハハハル」
デフォルト: `` sha512``(リテラル文字列)。
Pythonの `` hashlib.new() ``関数でサポートされているハッシュアルゴリズムを `` hashalg``として使うことができます。
異なった `` hashalg``オプションを使ってAuthTktAuthenticationPolicyの異なるインスタンスによって生成されたクッキーは互換性がありません。 `` hashalg``を切り替えることは、有効なクッキーを持つ既存のすべてのユーザーが再ログインする必要があることを意味します。
このオプションは、app: Pyramid 1.4で利用可能です。
オプション。
``デバッグ ``
デフォルト: `` False``。 `` debug``が `` True``ならば、Pyramidデバッグロガーに様々な認証ステップの結果についてのメッセージを記録します。デバッグからの出力は、サポートを求めるときにmaillistまたはIRCチャネルに報告するのに便利です。このクラスのオブジェクトは:class: `pyramid.interfaces.IAuthenticationPolicy`で記述されたインタフェースを実装します。
-
authenticated_userid
(request)¶ 認証されたユーザIDまたは `` None``を返します。
コールバックが登録されていない場合、これは `` unauthenticated_userid``と同じになります。
`` callback``が登録されている場合、コールバックが `` None``以外の値を返す場合に限り、これはuseridを返します。
-
effective_principals
(request)¶ 要求から導出された有効なプリンシパルのリスト。
これは、少なくとも:data: pyramid.security.Everyone`を含むプリンシパルのリストを返します。認証されたユーザIDがないか、 ` callback``が `` None``を返した場合、これは唯一のプリンシパルになります:
return [Everyone]
`` callback``が `` None``を返さず、認証されたユーザIDが見つかった場合、プリンシパルには:data: pyramid.security.Authenticated、` authenticated_userid`、返されたプリンシパルのリスト``コールバック ``によって:
extra_principals = callback(userid, request) return [Everyone, Authenticated, userid] + extra_principals
-
-
class
RemoteUserAuthenticationPolicy
(environ_key='REMOTE_USER', callback=None, debug=False)[ソース]¶ A:app: Pyramid:term:` REMOTE_USER`` WSGI環境変数からデータを取得する 認証ポリシー
コンストラクタ引数
`` Environ_key``
デフォルト: `` REMOTE_USER``。ユーザーIDを提供するWSGI環境のキー。``コールバック ``
デフォルト: `` None``。コールバックはuseridと要求を渡しました。ユーザーIDが存在しない場合はNoneを返し、ユーザーが存在する場合はグループを表すプリンシパル識別子(空の場合もあります)のシーケンスを返します。 `` callback``がNoneの場合、ユーザIDはグループプリンシパルなしで存在するものとみなされます。``デバッグ ``
デフォルト: `` False``。 `` debug``が `` True``ならば、Pyramidデバッグロガーに様々な認証ステップの結果についてのメッセージを記録します。デバッグからの出力は、サポートを求めるときにmaillistまたはIRCチャネルに報告するのに便利です。このクラスのオブジェクトは:class: `pyramid.interfaces.IAuthenticationPolicy`で記述されたインタフェースを実装します。
-
authenticated_userid
(request)¶ 認証されたユーザIDまたは `` None``を返します。
コールバックが登録されていない場合、これは `` unauthenticated_userid``と同じになります。
`` callback``が登録されている場合、コールバックが `` None``以外の値を返す場合に限り、これはuseridを返します。
-
effective_principals
(request)¶ 要求から導出された有効なプリンシパルのリスト。
これは、少なくとも:data: pyramid.security.Everyone`を含むプリンシパルのリストを返します。認証されたユーザIDがないか、 ` callback``が `` None``を返した場合、これは唯一のプリンシパルになります:
return [Everyone]
`` callback``が `` None``を返さず、認証されたユーザIDが見つかった場合、プリンシパルには:data: pyramid.security.Authenticated、` authenticated_userid`、返されたプリンシパルのリスト``コールバック ``によって:
extra_principals = callback(userid, request) return [Everyone, Authenticated, userid] + extra_principals
-
forget
(request)[ソース]¶ 無操作`` REMOTE_USER``はユーザを忘れるためのプロトコルを提供しません。これはアプリケーション固有のもので、他の場所やサブクラスでも実行できます。
-
-
class
SessionAuthenticationPolicy
(prefix='auth.', callback=None, debug=False)[ソース]¶ A:app: Pyramid`認証ポリシーで、設定された:term: session`からデータを取得します。この認証ポリシーが機能するには、:ref: sessions_chapter`の指示に従って、:term: session factory`を設定する必要があります。
コンストラクタ引数
``接頭辞 ``
セッションに認証パラメータを格納するときに使用される接頭辞。デフォルトは 'auth'です。オプション。``コールバック ``
デフォルト: `` None``。コールバックはuseridと要求を渡しました。ユーザーIDが存在しない場合は `` None``、ユーザーが存在する場合はプリンシパル識別子のシーケンス(空の場合もあり)を返すことが期待されます。 `` callback``が `` None``の場合、ユーザIDはプリンシパルなしで存在するものとみなされます。オプション。``デバッグ ``
デフォルト: `` False``。 `` debug``が `` True``ならば、Pyramidデバッグロガーに様々な認証ステップの結果についてのメッセージを記録します。デバッグからの出力は、サポートを求めるときにmaillistまたはIRCチャネルに報告するのに便利です。-
authenticated_userid
(request)¶ 認証されたユーザIDまたは `` None``を返します。
コールバックが登録されていない場合、これは `` unauthenticated_userid``と同じになります。
`` callback``が登録されている場合、コールバックが `` None``以外の値を返す場合に限り、これはuseridを返します。
-
effective_principals
(request)¶ 要求から導出された有効なプリンシパルのリスト。
これは、少なくとも:data: pyramid.security.Everyone`を含むプリンシパルのリストを返します。認証されたユーザIDがないか、 ` callback``が `` None``を返した場合、これは唯一のプリンシパルになります:
return [Everyone]
`` callback``が `` None``を返さず、認証されたユーザIDが見つかった場合、プリンシパルには:data: pyramid.security.Authenticated、` authenticated_userid`、返されたプリンシパルのリスト``コールバック ``によって:
extra_principals = callback(userid, request) return [Everyone, Authenticated, userid] + extra_principals
-
-
class
BasicAuthAuthenticationPolicy
(check, realm='Realm', debug=False)[ソース]¶ A:app:Pyramid認証ポリシーで、HTTP標準の基本認証プロトコルを使用してユーザーを認証します。このポリシーを使用するには、提供されたユーザーの資格情報を自分のログインデータのソースに対してチェックするコールバックを提供する必要があります。
コンストラクタ引数
``チェック ``
コールバック関数は、ユーザー名、パスワード、および要求を、この順序で位置引数として渡しました。ユーザーIDが存在しない場合は `` None``、ユーザーが存在する場合はプリンシパルIDのシーケンス(空の場合もあり)を返すと予想されます。「レルム」
デフォルト: `` "レルム" ``。基本認証レルムの文字列。通常、ログインダイアログでブラウザによってユーザに表示されます。``デバッグ ``
デフォルト: `` False``。 `` debug``が `` True``ならば、Pyramidデバッグロガーに様々な認証ステップの結果についてのメッセージを記録します。デバッグからの出力は、サポートを求めるときにmaillistまたはIRCチャネルに報告するのに便利です。挑戦をする
通常のブラウザは、最初にサーバーからチャレンジを受け取らない限り、ユーザー名/パスワードの資格情報を送信しません。次のレシピは、Forbiddenレスポンスをもたらすビューを呼び出そうとすると、Basic Authチャレンジをユーザに送信するビューを登録します:
from pyramid.httpexceptions import HTTPUnauthorized from pyramid.security import forget from pyramid.view import forbidden_view_config @forbidden_view_config() def forbidden_view(request): if request.authenticated_userid is None: response = HTTPUnauthorized() response.headers.update(forget(request)) return response return HTTPForbidden()
-
authenticated_userid
(request)¶ 認証されたユーザIDまたは `` None``を返します。
コールバックが登録されていない場合、これは `` unauthenticated_userid``と同じになります。
`` callback``が登録されている場合、コールバックが `` None``以外の値を返す場合に限り、これはuseridを返します。
-
effective_principals
(request)¶ 要求から導出された有効なプリンシパルのリスト。
これは、少なくとも:data: pyramid.security.Everyone`を含むプリンシパルのリストを返します。認証されたユーザIDがないか、 ` callback``が `` None``を返した場合、これは唯一のプリンシパルになります:
return [Everyone]
`` callback``が `` None``を返さず、認証されたユーザIDが見つかった場合、プリンシパルには:data: pyramid.security.Authenticated、` authenticated_userid`、返されたプリンシパルのリスト``コールバック ``によって:
extra_principals = callback(userid, request) return [Everyone, Authenticated, userid] + extra_principals
-
-
class
RepozeWho1AuthenticationPolicy
(identifier_name='auth_tkt', callback=None)[ソース]¶ A:app: Pyramid:term:認証ポリシー `:mod: repoze.who`からデータを取得する1.X WSGI 'API'(WSGI環境の `` repoze.who.identity``キー)。
コンストラクタ引数
`` identifier_name``
デフォルト: `` auth_tkt``。 :mod: `repoze.who`プラグイン名は、覚えている/忘れていることを実行します。オプション。``コールバック ``
デフォルト: `` None``。コールバックは、:mod: repoze.who`アイデンティティと:term: request`を渡しました。アイデンティティによって表されるユーザが存在しない場合は `` None``を返すか、プリンシパル識別子のシーケンス)は、ユーザーが存在する場合はグループを表します。 `` callback``がNoneの場合、ユーザIDはグループプリンシパルなしで存在するものとみなされます。このクラスのオブジェクトは:class: `pyramid.interfaces.IAuthenticationPolicy`で記述されたインタフェースを実装します。
-
authenticated_userid
(request)[ソース]¶ 認証されたユーザIDまたは `` None``を返します。
コールバックが登録されていない場合、これは `` unauthenticated_userid``と同じになります。
`` callback``が登録されている場合、コールバックが `` None``以外の値を返す場合に限り、これはuseridを返します。
-
effective_principals
(request)[ソース]¶ アイデンティティから導かれた有効なプリンシパルのリスト。
これは、少なくとも:data: pyramid.security.Everyone`を含むプリンシパルのリストを返します。アイデンティティがないか、 ` callback``が `` None``を返した場合、これは唯一のプリンシパルになります。
`` callback``が `` None``を返さず、アイデンティティが見つかった場合、プリンシパルには:data: pyramid.security.Authenticated、` authenticated_userid`、および返されたプリンシパルのリストが含まれます。 ``コールバック ``
-
ヘルパークラス¶
- class
AuthTktCookieHelper
(secret, cookie_name='auth_tkt', secure=False, include_ip=False, timeout=None, reissue_time=None, max_age=None, http_only=False, path='/', wild_domain=True, hashalg='md5', parent_domain=False, domain=None)[ソース]¶サードパーティ認証ポリシーの実装で使用するヘルパークラス。コンストラクタ引数の意味については、class: `pyramid.authentication.AuthTktAuthenticationPolicy`を参照してください。
- class
AuthTicket
(secret, userid, ip, tokens=(), user_data='', time=None, cookie_name='auth_tkt', secure=False, hashalg='md5')¶このクラスは認証トークンを表します。共有秘密情報、ユーザーID、およびIPアドレスを渡す必要があります。必要に応じて、後のスクリプトで独自に使用できる任意のデータであるトークン(ロール名を表す文字列のリスト) 'user_data'を含めることができます。最後に、Cookie名とタイムスタンプを上書きすることができます。
すべての引数を指定したら、.cookie_value()を使用して適切な認証チケットを生成します。
使用法::
token = AuthTicket('sharedsecret', 'username', os.environ['REMOTE_ADDR'], tokens=['admin']) val = token.cookie_value()
- exception
BadTicket
(msg, expected=None)¶チケットを解析できないときに発生する例外。期待されるダイジェストがどうあるべきかを決定するのに十分遠くに到達すれば、期待が設定されます。これはデフォルトでは表示されませんが、デバッグには役立ちます。
- static
parse_ticket
(secret, ticket, ip, hashalg='md5')¶チケットを解析し、(timestamp、userid、tokens、user_data)を返します。
チケットを解析できない場合は、説明とともに「BadTicket」例外が発生します。
remember
(request, userid, max_age=None, tokens=())[ソース]¶Set-Cookieヘッダーのセットを返します。応答に設定すると、これらのヘッダーは有効な認証チケットを表します。
- `` max_age``
- auth_tktクッキーの最大経過秒数。この値が設定されると、クッキーの `` Max-Age``と `` Expires``設定が設定され、ブラウザセッション間でauth_tktクッキーが存続するようになります。この値が `` None``の場合、ヘルパー自体に与えられた `` max_age``値は `` max_age``値として使われます。デフォルト: `` None``。
- 「トークン」
- auth_tktトークンフィールドに配置される一連の文字列。シーケンス中の各文字列は、Pythonの `` str``型でなければならず、正規表現 `` ^ [A-Za-z] [A-Za-z0-9 + _-] * $ ``と一致しなければなりません。トークンは、要求にauth_tktが見つかって解凍されたときに返されたIDで使用できます。デフォルト: ``() ``。