オーソリゼーション【authorization】
承認 [authorization]
Authorization クラス
アセンブリ: System (system.dll 内)


AuthenticationManager は、認証メッセージを格納する Authorization クラスのインスタンスを返します。このメッセージは、クライアント (WebRequest またはその派生クラスの 1 つなど) がサーバーへのアクセスを承認されていることを示すためにインターネット サーバーに送信されます。
Authorization インスタンスは、AuthenticationManager が要求を処理するために指定する認証モジュールによって作成されます。

System.Net.Authorization


Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


Authorization コンストラクタ (String)
アセンブリ: System (system.dll 内)



Authorization オブジェクトを作成する方法を次のコード例に示します。詳細については、AuthenticationManager クラスのトピックを参照してください。
' Authenticate is the core method for this custom authentication. ' When an Internet resource requests authentication, the WebRequest.GetResponse ' method calls the AuthenticationManager.Authenticate method. This method, in ' turn, calls the Authenticate method on each of the registered authentication ' modules, in the order in which they were registered. When the authentication is ' complete an Authorization object is returned to the WebRequest. Public Function Authenticate(ByVal challenge As String, ByVal request As WebRequest, ByVal credentials As ICredentials) As Authorization _ Implements IAuthenticationModule.Authenticate Dim ASCII As Encoding = Encoding.ASCII ' Get the username and password from the credentials Dim MyCreds As NetworkCredential = credentials.GetCredential(request.RequestUri, "Basic") If PreAuthenticate(request, credentials) Is Nothing Then Console.WriteLine(ControlChars.Lf + " Pre-authentication is not allowed.") Else Console.WriteLine(ControlChars.Lf + " Pre-authentication is allowed.") End If ' Verify that the challenge satisfies the authorization requirements. Dim challengeOk As Boolean = checkChallenge(challenge, MyCreds.Domain) If Not challengeOk Then Return Nothing End If ' Create the encrypted string according to the Basic authentication format as ' follows: ' a)Concatenate the username and password separated by colon; ' b)Apply ASCII encoding to obtain a stream of bytes; ' c)Apply Base64 encoding to this array of bytes to obtain the encoded ' authorization. Dim BasicEncrypt As String = MyCreds.UserName + ":" + MyCreds.Password Dim BasicToken As String = "Basic " + Convert.ToBase64String(ASCII.GetBytes(BasicEncrypt)) ' Create an Authorization object using the encoded authorization above. Dim resourceAuthorization As New Authorization(BasicToken) ' Get the Message property, which contains the authorization string that the ' client returns to the server when accessing protected resources. Console.WriteLine(ControlChars.Lf + " Authorization Message:{0}", resourceAuthorization.Message) ' Get the Complete property, which is set to true when the authentication process ' between the client and the server is finished. Console.WriteLine(ControlChars.Lf + " Authorization Complete:{0}", resourceAuthorization.Complete) Console.WriteLine(ControlChars.Lf + " Authorization ConnectionGroupId:{0}", resourceAuthorization.ConnectionGroupId) Return resourceAuthorization End Function 'Authenticate End Class 'CustomBasic
// Authenticate is the core method for this custom authentication. // When an Internet resource requests authentication, the WebRequest.GetResponse // method calls the AuthenticationManager.Authenticate method. This method, in // turn, calls the Authenticate method on each of the registered authentication // modules, in the order in which they were registered. When the authentication is // complete an Authorization object is returned to the WebRequest. public Authorization Authenticate(String challenge, WebRequest request, ICredentials credentials) { Encoding ASCII = Encoding.ASCII; // Get the username and password from the credentials NetworkCredential MyCreds = credentials.GetCredential(request.RequestUri, "Basic"); if (PreAuthenticate(request, credentials) == null) Console.WriteLine("\n Pre-authentication is not allowed."); else Console.WriteLine("\n Pre-authentication is allowed."); // Verify that the challenge satisfies the authorization requirements. bool challengeOk = checkChallenge(challenge, MyCreds.Domain); if (!challengeOk) return null; // Create the encrypted string according to the Basic authentication format as // follows: // a)Concatenate the username and password separated by colon; // b)Apply ASCII encoding to obtain a stream of bytes; // c)Apply Base64 encoding to this array of bytes to obtain the encoded // authorization. string BasicEncrypt = MyCreds.UserName + ":" + MyCreds.Password; string BasicToken = "Basic " + Convert.ToBase64String(ASCII.GetBytes(BasicEncrypt)); // Create an Authorization object using the encoded authorization above. Authorization resourceAuthorization = new Authorization(BasicToken); // Get the Message property, which contains the authorization string that the // client returns to the server when accessing protected resources. Console.WriteLine("\n Authorization Message:{0}",resourceAuthorization.Message); // Get the Complete property, which is set to true when the authentication process // between the client and the server is finished. Console.WriteLine("\n Authorization Complete:{0}",resourceAuthorization.Complete); Console.WriteLine("\n Authorization ConnectionGroupId:{0}",resourceAuthorization.ConnectionGroupId); return resourceAuthorization; }
// Authenticate is the core method for this custom authentication. // When an internet resource requests authentication, the WebRequest::GetResponse // method calls the AuthenticationManager::Authenticate method. This method, in // turn, calls the Authenticate method on each of the registered authentication // modules, in the order they were registered. When the authentication is // complete an Authorization object is returned to the WebRequest, as // shown by this routine's retun type. virtual Authorization^ Authenticate( String^ challenge, WebRequest^ request, ICredentials^ credentials ) { Encoding^ ASCII = Encoding::ASCII; // Get the username and password from the credentials NetworkCredential^ MyCreds = credentials->GetCredential( request->RequestUri, "Basic" ); if ( PreAuthenticate( request, credentials ) == nullptr ) Console::WriteLine( "\n Pre-authentication is not allowed." ); else Console::WriteLine( "\n Pre-authentication is allowed." ); // Verify that the challenge satisfies the authorization requirements. bool challengeOk = checkChallenge( challenge, MyCreds->Domain ); if ( !challengeOk ) return nullptr; // Create the encrypted string according to the Basic authentication format as // follows: // a)Concatenate username and password separated by colon; // b)Apply ASCII encoding to obtain a stream of bytes; // c)Apply Base64 Encoding to this array of bytes to obtain the encoded // authorization. String^ BasicEncrypt = String::Concat( MyCreds->UserName, ":", MyCreds->Password ); String^ BasicToken = String::Concat( "Basic ", Convert::ToBase64String( ASCII->GetBytes( BasicEncrypt ) ) ); // Create an Authorization object using the above encoded authorization. Authorization^ resourceAuthorization = gcnew Authorization( BasicToken ); // Get the Message property which contains the authorization string that the // client returns to the server when accessing protected resources Console::WriteLine( "\n Authorization Message: {0}", resourceAuthorization->Message ); // Get the Complete property which is set to true when the authentication process // between the client and the server is finished. Console::WriteLine( "\n Authorization Complete: {0}", resourceAuthorization->Complete ); Console::WriteLine( "\n Authorization ConnectionGroupId: {0}", resourceAuthorization->ConnectionGroupId ); return resourceAuthorization; }
// Authenticate is the core method for this custom authentication. // When an Internet resource requests authentication, the WebRequest. // GetResponse method calls the AuthenticationManager.Authenticate method. // This method, in turn, calls the Authenticate method on each of the // registered authentication modules, in the order in which they were // registered. When the authentication is complete an Authorization object // is returned to the WebRequest. public Authorization Authenticate( String challenge, WebRequest request, ICredentials credentials) { Encoding ascii = Encoding.get_ASCII(); // Get the username and password from the credentials NetworkCredential myCreds = credentials.GetCredential( request.get_RequestUri(), "Basic"); if (PreAuthenticate(request, credentials) == null) { Console.WriteLine("\n Pre-authentication is not allowed."); } else { Console.WriteLine("\n Pre-authentication is allowed."); } // Verify that the challenge satisfies the authorization requirements. boolean challengeOk = CheckChallenge(challenge, myCreds.get_Domain()); if (!(challengeOk)) { return null; } // Create the encrypted string according to the Basic authentication // format as follows: // a)Concatenate the username and password separated by colon; // b)Apply ascii encoding to obtain a stream of bytes; // c)Apply Base64 encoding to this array of bytes to obtain the encoded // authorization. String basicEncrypt = myCreds.get_UserName() + ":" + myCreds.get_Password(); String basicToken = "Basic " + Convert.ToBase64String(ascii.GetBytes(basicEncrypt)); // Create an Authorization object using the encoded // authorization above. Authorization resourceAuthorization = new Authorization(basicToken); // Get the Message property, which contains the authorization string // that the client returns to the server when accessing protected // resources. Console.WriteLine("\n Authorization Message:{0}", resourceAuthorization.get_Message()); // Get the Complete property, which is set to true when the // authentication process between the client and the // server is finished. Console.WriteLine("\n Authorization Complete:{0}", System.Convert.ToString(resourceAuthorization.get_Complete())); Console.WriteLine("\n Authorization ConnectionGroupId:{0}", resourceAuthorization.get_ConnectionGroupId()); return resourceAuthorization; } //Authenticate

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


Authorization コンストラクタ (String, Boolean, String)
アセンブリ: System (system.dll 内)

Dim token As String Dim finished As Boolean Dim connectionGroupId As String Dim instance As New Authorization(token, finished, connectionGroupId)

指定した承認メッセージ、承認の完了ステータス、および接続グループ識別子を使用して、Authorization クラスの新しいインスタンスを作成するコード例を次に示します。
Public Function Authenticate(challenge As String, request As WebRequest, credentials As ICredentials) As Authorization Implements IAuthenticationModule.Authenticate Try Dim message As String ' Check if Challenge string was raised by a site which requires CloneBasic authentication. If challenge Is Nothing Or Not challenge.StartsWith("CloneBasic") Then Return Nothing End If Dim myCredentials As NetworkCredential If TypeOf credentials Is CredentialCache Then myCredentials = credentials.GetCredential(request.RequestUri, "CloneBasic") If myCredentials Is Nothing Then Return Nothing End If Else myCredentials = CType(credentials, NetworkCredential) End If 'Message encryption scheme : ' a)Concatenate username and password seperated by space ' b)Apply ASCII encoding to obtain a stream of bytes ' c)Apply Base64 Encoding to this array of bytes to obtain our encoded authorization message message = myCredentials.UserName + " " + myCredentials.Password 'Apply AsciiEncoding to our user name and password to obtain it as an array of bytes Dim asciiEncoding As Encoding = Encoding.ASCII Dim byteArray(asciiEncoding.GetByteCount(message)) As Byte byteArray = asciiEncoding.GetBytes(message) 'Perform Base64 transform message = Convert.ToBase64String(byteArray) 'The following overloaded contructor sets the 'Message' property of authorization to the base64 string ' *that we just formed and it also sets the 'Complete' property to true and the connection group id ' *to the domain of the NetworkCredential object Dim myAuthorization As New Authorization("CloneBasic " + message, True, request.ConnectionGroupName) Return myAuthorization Catch e As Exception Console.WriteLine(("Exception Raised ...:" + e.Message)) Return Nothing End Try End Function 'Authenticate
public Authorization Authenticate( string challenge,WebRequest request,ICredentials credentials) { try { string message; // Check if Challenge string was raised by a site which requires CloneBasic authentication. if ((challenge == null) || (!challenge.StartsWith("CloneBasic"))) return null; NetworkCredential myCredentials; if (credentials is CredentialCache) { myCredentials = credentials.GetCredential(request.RequestUri,"CloneBasic"); if (myCredentials == null) return null; } else myCredentials = (NetworkCredential)credentials; // Message encryption scheme : // a)Concatenate username and password seperated by space; // b)Apply ASCII encoding to obtain a stream of bytes; // c)Apply Base64 Encoding to this array of bytes to obtain our encoded authorization message. message = myCredentials.UserName + " " + myCredentials.Password; // Apply AsciiEncoding to our user name and password to obtain it as an array of bytes. Encoding asciiEncoding = Encoding.ASCII; byte[] byteArray = new byte[asciiEncoding.GetByteCount(message)]; byteArray = asciiEncoding.GetBytes(message); // Perform Base64 transform. message = Convert.ToBase64String(byteArray); // The following overloaded contructor sets the 'Message' property of authorization to the base64 string; // that we just formed and it also sets the 'Complete' property to true and the connection group id; // to the domain of the NetworkCredential object. Authorization myAuthorization = new Authorization("CloneBasic " + message,true,request.ConnectionGroupName); return myAuthorization; } catch(Exception e) { Console.WriteLine("Exception Raised ...:"+e.Message); return null; } }
virtual Authorization^ Authenticate( String^ challenge, WebRequest^ request, ICredentials^ credentials ) { try { String^ message; // Check if Challenge String* was raised by a site which requires CloneBasic authentication. if ( (challenge == nullptr) || ( !challenge->StartsWith( "CloneBasic" )) ) return nullptr; NetworkCredential^ myCredentials; if ( dynamic_cast<CredentialCache^>(credentials) == nullptr ) { myCredentials = credentials->GetCredential( request->RequestUri, "CloneBasic" ); if ( myCredentials == nullptr ) return nullptr; } else myCredentials = dynamic_cast<NetworkCredential^>(credentials); // Message encryption scheme : // a)Concatenate username and password seperated by space; // b)Apply ASCII encoding to obtain a stream of bytes; // c)Apply Base64 Encoding to this array of bytes to obtain our encoded authorization message. message = String::Concat( myCredentials->UserName, " ", myCredentials->Password ); // Apply AsciiEncoding to our user name and password to obtain it as an array of bytes. Encoding^ asciiEncoding = Encoding::ASCII; array<Byte>^byteArray = gcnew array<Byte>(asciiEncoding->GetByteCount( message )); byteArray = asciiEncoding->GetBytes( message ); // Perform Base64 transform. message = Convert::ToBase64String( byteArray ); // The following overloaded contructor sets the 'Message' property of authorization to the base64 String*; // that we just formed and it also sets the 'Complete' property to true and the connection group id; // to the domain of the NetworkCredential Object*. Authorization^ myAuthorization = gcnew Authorization( String::Concat( "CloneBasic ", message, true, request->ConnectionGroupName ) ); return myAuthorization; } catch ( Exception^ e ) { Console::WriteLine( "Exception Raised ...: {0}", e->Message ); return nullptr; } }
public Authorization Authenticate(String challenge, WebRequest request, ICredentials credentials) { try { String message; // Check if Challenge string was raised by a site which requires // CloneBasic authentication. if (challenge == null || !(challenge.StartsWith("CloneBasic"))) { return null; } NetworkCredential myCredentials; if (credentials instanceof CredentialCache) { myCredentials = credentials.GetCredential( request.get_RequestUri(), "CloneBasic"); if (myCredentials == null) { return null; } } else { myCredentials = (NetworkCredential)credentials; } // Message encryption scheme : // a)Concatenate username and password seperated by space; // b)Apply ASCII encoding to obtain a stream of bytes; // c)Apply Base64 Encoding to this array of bytes to obtain our // encoded authorization message. message = myCredentials.get_UserName() + " " + myCredentials.get_Password(); // Apply AsciiEncoding to our user name and password to obtain it // as an array of bytes. Encoding asciiEncoding = Encoding.get_ASCII(); ubyte byteArray[] = new ubyte[asciiEncoding.GetByteCount(message)]; byteArray = asciiEncoding.GetBytes(message); // Perform Base64 transform. message = Convert.ToBase64String(byteArray); // The following overloaded contructor sets the 'Message' property // of authorization to the base64 string; // that we just formed and it also sets the 'Complete' property // to true and the connection group id to the domain // of the NetworkCredential object. Authorization myAuthorization = new Authorization("CloneBasic " + message, true, request.get_ConnectionGroupName()); return myAuthorization; } catch (System.Exception e) { Console.WriteLine("Exception Raised...:" + e.get_Message()); return null; } } //Authenticate

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


Authorization コンストラクタ

名前 | 説明 |
---|---|
Authorization (String) | Authorization クラスの新しいインスタンスを、指定した承認メッセージを使用して作成します。 .NET Compact Framework によってサポートされています。 |
Authorization (String, Boolean) | Authorization クラスの新しいインスタンスを、指定した承認メッセージおよび承認の完了ステータスを使用して作成します。 .NET Compact Framework によってサポートされています。 |
Authorization (String, Boolean, String) | Authorization クラスの新しいインスタンスを、指定した承認メッセージ、承認の完了ステータス、および接続グループ識別子を使用して作成します。 .NET Compact Framework によってサポートされています。 |

Authorization コンストラクタ (String, Boolean)
アセンブリ: System (system.dll 内)



指定した承認メッセージおよび承認の完了ステータスを使用して、Authorization クラスの新しいインスタンスを作成するコード例を次に示します。
Function Authenticate(ByVal challenge As String, ByVal request As WebRequest, ByVal credentials As ICredentials) As Authorization Implements IAuthenticationModule.Authenticate Try Dim message As String ' Check if Challenge string was raised by a site which requires 'CloneBasic' authentication. If challenge Is Nothing Or Not challenge.StartsWith("CloneBasic") Then Return Nothing End If Dim myCredentials As NetworkCredential If TypeOf credentials Is CredentialCache Then myCredentials = credentials.GetCredential(request.RequestUri, "CloneBasic") If myCredentials Is Nothing Then Return Nothing End If Else myCredentials = CType(credentials, NetworkCredential) End If ' Message encryption scheme : ' a)Concatenate username and password seperated by space ' b)Apply ASCII encoding to obtain a stream of bytes ' c)Apply Base64 Encoding to this array of bytes to obtain our encoded authorization message message = myCredentials.UserName + " " + myCredentials.Password ' Apply AsciiEncoding to 'message' string to obtain it as an array of bytes. Dim ascii As Encoding = Encoding.ASCII Dim byteArray(ascii.GetByteCount(message)) As Byte byteArray = ascii.GetBytes(message) ' Performing Base64 transformation. message = Convert.ToBase64String(byteArray) Dim myAuthorization As New Authorization("CloneBasic " + message, True) Dim protectionRealm() As String = {request.RequestUri.AbsolutePath} myAuthorization.ProtectionRealm = protectionRealm Return myAuthorization Catch e As Exception Console.WriteLine("The following exception was raised in Authenticate method:{0}", e.Message) Return Nothing End Try End Function 'Authenticate
public Authorization Authenticate( string challenge,WebRequest request,ICredentials credentials) { try { string message; // Check if Challenge string was raised by a site which requires 'CloneBasic' authentication. if ((challenge == null) || (!challenge.StartsWith("CloneBasic"))) return null; NetworkCredential myCredentials; if (credentials is CredentialCache) { myCredentials = credentials.GetCredential(request.RequestUri,"CloneBasic"); if (myCredentials == null) return null; } else myCredentials = (NetworkCredential)credentials; // Message encryption scheme : // a)Concatenate username and password seperated by space; // b)Apply ASCII encoding to obtain a stream of bytes; // c)Apply Base64 Encoding to this array of bytes to obtain our encoded authorization message. message = myCredentials.UserName + " " + myCredentials.Password; // Apply AsciiEncoding to 'message' string to obtain it as an array of bytes. Encoding ascii = Encoding.ASCII; byte[] byteArray = new byte[ascii.GetByteCount(message)]; byteArray = ascii.GetBytes(message); // Performing Base64 transformation. message = Convert.ToBase64String(byteArray); Authorization myAuthorization = new Authorization("CloneBasic " + message,true); string[] protectionRealm = new string[]{request.RequestUri.AbsolutePath}; myAuthorization.ProtectionRealm = protectionRealm; return myAuthorization; } catch(Exception e) { Console.WriteLine("The following exception was raised in Authenticate method:{0}",e.Message); return null; } }
virtual Authorization^ Authenticate( String^ challenge, WebRequest^ request, ICredentials^ credentials ) { try { String^ message; // Check if Challenge String* was raised by a site which requires 'CloneBasic' authentication. if ( (challenge == nullptr) || ( !challenge->StartsWith( "CloneBasic" )) ) return nullptr; NetworkCredential^ myCredentials; if ( dynamic_cast<CredentialCache^>(credentials) == nullptr ) { myCredentials = credentials->GetCredential( request->RequestUri, "CloneBasic" ); if ( myCredentials == nullptr ) return nullptr; } else myCredentials = dynamic_cast<NetworkCredential^>(credentials); // Message encryption scheme : // a)Concatenate username and password seperated by space; // b)Apply ASCII encoding to obtain a stream of bytes; // c)Apply Base64 Encoding to this array of bytes to obtain our encoded authorization message. message = String::Concat( myCredentials->UserName, " ", myCredentials->Password ); // Apply AsciiEncoding to 'message' String* to obtain it as an array of bytes. Encoding^ ascii = Encoding::ASCII; array<Byte>^byteArray = gcnew array<Byte>(ascii->GetByteCount( message )); byteArray = ascii->GetBytes( message ); // Performing Base64 transformation. message = Convert::ToBase64String( byteArray ); Authorization^ myAuthorization = gcnew Authorization( String::Concat( "CloneBasic ", message, true ) ); array<String^>^protectionRealm = gcnew array<String^>(1); protectionRealm[ 0 ] = request->RequestUri->AbsolutePath; myAuthorization->ProtectionRealm = protectionRealm; return myAuthorization; } catch ( Exception^ e ) { Console::WriteLine( "The following exception was raised in Authenticate method: {0}", e->Message ); return nullptr; } }
public Authorization Authenticate(String challenge, WebRequest request, ICredentials credentials) { try { String message; // Check if Challenge string was raised by a site which requires // 'CloneBasic' authentication. if (challenge == null || !(challenge.StartsWith("CloneBasic"))) { return null; } NetworkCredential myCredentials; if (credentials instanceof CredentialCache) { myCredentials = credentials.GetCredential( request.get_RequestUri(), "CloneBasic"); if (myCredentials == null) { return null; } } else { myCredentials = (NetworkCredential)credentials; } // Message encryption scheme : // a)Concatenate userName and password seperated by space; // b)Apply ASCII encoding to obtain a stream of bytes; // c)Apply Base64 Encoding to this array of bytes to obtain our // encoded authorization message. message = myCredentials.get_UserName() + " " + myCredentials.get_Password(); // Apply AsciiEncoding to 'message' string to obtain it as an array // of bytes. Encoding ascii = Encoding.get_ASCII(); ubyte byteArray[] = new ubyte[ascii.GetByteCount(message)]; byteArray = ascii.GetBytes(message); // Performing Base64 transformation. message = Convert.ToBase64String(byteArray); Authorization myAuthorization = new Authorization("CloneBasic " + message, true); String protectionRealm[] = new String[] { request.get_RequestUri().get_AbsolutePath() }; myAuthorization.set_ProtectionRealm(protectionRealm); return myAuthorization; } catch (System.Exception e) { Console.WriteLine("The following exception was raised in " + "Authenticate method:{0}", e.get_Message()); return null; } } //Authenticate

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


Authorization プロパティ
Authorization メソッド

名前 | 説明 | |
---|---|---|
![]() | Equals | オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 ( Object から継承されます。) |
![]() | GetHashCode | 特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 ( Object から継承されます。) |
![]() | GetType | 現在のインスタンスの Type を取得します。 ( Object から継承されます。) |
![]() | ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 ( Object から継承されます。) |
![]() | ToString | 現在の Object を表す String を返します。 ( Object から継承されます。) |

名前 | 説明 | |
---|---|---|
![]() | Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 ( Object から継承されます。) |
![]() | MemberwiseClone | 現在の Object の簡易コピーを作成します。 ( Object から継承されます。) |

Authorization メンバ
Authorization データ型で公開されるメンバを以下の表に示します。



名前 | 説明 | |
---|---|---|
![]() | Equals | オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 (Object から継承されます。) |
![]() | GetHashCode | 特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 (Object から継承されます。) |
![]() | GetType | 現在のインスタンスの Type を取得します。 (Object から継承されます。) |
![]() | ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 (Object から継承されます。) |
![]() | ToString | 現在の Object を表す String を返します。 (Object から継承されます。) |

名前 | 説明 | |
---|---|---|
![]() | Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 (Object から継承されます。) |
![]() | MemberwiseClone | 現在の Object の簡易コピーを作成します。 (Object から継承されます。) |

認可 (セキュリティ)
情報セキュリティと サイバーセキュリティ |
---|
対象別カテゴリ |
|
隣接領域 |
脅威 |
防御 |
|
認可(にんか、英: authorization, AuthZ)はある者に付与された、リソースへのアクセス許可である[1]。許可(きょか、英: permission)、権限(けんげん、英: privilege)、アクセス権(あくせすけん、英: access right)とも呼ばれる[2][3]。
また、「認可を付与するプロセス」を「認可」と呼ぶ場合もある[1]。明示的に使い分ける場合、認可を付与することを「認可する(にんかする、英: authorize / 英: grant an authorization)」と言う[4]。
概要
コンピュータシステムやネットワークにおけるアクセス制御はアクセスポリシーに基づいている。 アクセス制御処理は2段階に分けられ、第1段階は「ポリシー定義段階」、第2段階は「ポリシー施行段階」である。認可はポリシー定義段階の機能であり、その後ポリシー施行段階で事前に定義された認可に基づき、アクセス要求を受け入れるか拒否するかを決定する。
例えば、人事部門のスタッフは従業員の記録にアクセスする権限を与えられており、このポリシーはコンピュータシステム内のアクセス制御規則として定式化されているのが普通である。システムはそのアクセス制御規則を使って、(認証された)利用者のアクセス要求を受け入れるか拒否するかを決定する。リソースには、個々のファイルやアイテムのデータ、プログラム、コンピュータハードウェア、コンピュータアプリケーションが提供する機能が含まれる。利用者とは例えば、コンピュータユーザー、プログラム、コンピュータ上のその他の機器を指す。
最近のマルチユーザー型オペレーティングシステムの多くはアクセス制御を行っており、したがって認可に基づいて動作している。アクセス制御は利用者のアイデンティティの検証に認証を利用する。利用者がリソースにアクセスしようとしたとき、アクセス制御処理でその利用者がそのリソースの使用を認可されているかを調べる。認可は、アプリケーションの領域では部門の長など責任者 (authority) が決定するものだが、システムアドミニストレータなどの管理者にその権限が委託されていることが多い。認可はアクセスポリシーとして表現され、それは例えばアクセス制御リストやcapabilityの形をとり、「最小権限の原則」を基礎とする。「最小権限の原則」とは、利用者は自身の仕事に必要な場合だけアクセスを認可される、というものである。古いオペレーティングシステムや単一ユーザーのオペレーティングシステムでは認可の概念が弱いか全く存在せず、アクセス制御システムも同様のことが多い。
「無名の利用者」または「ゲスト」とは、認証を必要としない利用者であり、権限も限られていることが多い。分散システムでは、一意なアイデンティティを要求せずにアクセスを認めることが多い。例えば、鍵やチケットなどのアクセストークンが例として挙げられる。鍵やチケットを持っていれば、アイデンティティを証明しなくともアクセスを許可される。
信頼された (trusted) 利用者とは認証された利用者であり、リソースへの無制限のアクセス権限(認可)を与えられていることが多い。部分的に信頼された利用者やゲストは、不正なアクセスや使用を防ぐため、アクセス権限(認可)が制限されていることが多い。一部のオペレーティングシステムのアクセスポリシーでは、デフォルトで全利用者に全てのリソースへの完全なアクセスを許している。もちろん多くの場合は逆で、管理者が個々の利用者に対して個々のリソースの使用を明示的に認可する必要がある。
認可とアクセス制御リストの組み合わせを通してアクセスを制御するとしても、認可データの保守は容易ではなく、管理業務の大きな負担となっている。ユーザーへの認可を変更したり取り消したりする必要はよく生じる。その場合、システム上の対応するアクセス規則を変更したり消去したりする。従来のシステム毎の認可管理の代替として、信頼できる第三者が認可情報を安全に配布する en:Atomic Authorization もある。
認可クレデンシャル
認可クレデンシャル(にんかくれでんしゃる、英: authorization credential)はアクセス時の認可検証に利用される、認可を表現した可搬なデータオブジェクトである[5]。
日常における「許可証」とよく似た概念である。目に見えない「権利」を「証書」という有形物に記すことで、証書の検証により権利の存在を確認できる。アクセス制御では、目に見えない「認可」を「認可クレデンシャル」というデータオブジェクトに対応づけて認可検証を可能にしている。ゆえに保護リソースへのアクセス時、認可クレデンシャルを提示してこれが正当だと検証(verify)されれば「適切な認可がある」としてアクセス制御を通過できる[5]。
OAuth 2.0 におけるアクセストークンが認可クレデンシャルの一例として挙げられる[6]。
混同
認可という用語は、間違ってポリシー施行段階の機能として使われることが多い。この混同はシスコシステムズのAAAサーバの導入に遡る。例えば RFC 2904 [7]や Cisco AAA[8] で混同されている。認可 (authorization) の正しい基本的意味は、これらの用法と互換ではない。例えば、セキュリティサービスの基本的な機密性、完全性 (integrity)、可用性は、認可を使って定義される[9]。「機密性」は国際標準化機構 (ISO) の定義によれば「その情報に対してアクセスを認可された者のみがアクセス可能であることを保証すること」であり、明らかにここでの「認可」はポリシー定義段階の機能である。この機密性の定義を「その情報に対してアクセスを要求されたとき、許可された者にのみアクセス可能であることを保証すること」と解釈するのは不合理で、例えば許可されていない者がパスワードを盗んでアクセスした場合、「認可された」ことになってしまう。ログオン画面で「認可されたユーザーのみがこのシステムにアクセスできる」というような警告を表示することがよくある(例えば、こちら[10])。認可という用語を間違った意味で使っていると、この警告に対して盗んだパスワードを持つ攻撃者が「認可されているからログオンできたのだ」と主張することを許すことになり、警告を無効にすることになる。
認可という言葉を両方の意味(ポリシー定義段階とポリシー施行段階)で同じ文書内で使っている例もよくある(例えば、こちら[11])。
認可の概念を正しく使っている例としては、Karp (2006)[12]や Jøsang et al. (2006)[13]がある。
関連項目
脚注・出典
- ^ a b "$ authorization 1a. (I) An approval that is granted to a system entity to access a system resource. ... 1b. (I) A process for granting approval to a system entity to access a system resource." RFC4949 より引用
- ^ "$ authorization ... Compare: permission, privilege. ... Some synonyms are "permission" and "privilege"." RFC4949 より引用
- ^ "$ access right (I) Synonym for "authorization"; emphasizes the possession of the authorization by a system entity." RFC4949 より引用
- ^ "$ authorize (I) Grant an authorization to a system entity." RFC4949 より引用
- ^ a b ""authorization credential": A data object that is a portable representation of the association between an identifier and one or more access authorizations, and that can be presented for use in verifying those authorizations for an entity that attempts such access." RFC4949 より引用
- ^ "1.4. Access Token Access tokens are credentials used to access protected resources." RFC6749 より引用
- ^ J. Vollbrecht et al. AAA Authorization Framework. IETF, 2000 txt.
- ^ B.J. Caroll. Cisco Access Control Security: AAA Administration Services. Cisco Press, 2004
- ^ ISO 7498-2 Information Processing Systems - Open Systems Interconnection - Basic Reference Model - Part 2: Security Architecture. ISO/IEC 1989
- ^ Access Warning Statements, University of California, Berkeley [1]
- ^ Understanding SOA Security Design and Implementation. IBM Redbook 2007 PDF
- ^ A. H. Karp. Authorization-Based Access Control for the Services Oriented Architecture. Proceedings of the Fourth International Conference on Creating, Connecting, and Collaborating through Computing (C5), 26-27 January 2006, Berkeley, CA, USA.PDF
- ^ A. Jøsang, D. Gollmann, R. Au. A Method for Access Authorisation Through Delegation Networks. Proceedings of the Australasian Information Security Workshop (AISW'06), Hobart, January 2006. PDF
Authorization
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/06/07 20:16 UTC 版)
「Hypertext Transfer Protocol」の記事における「Authorization」の解説
※この「Authorization」の解説は、「Hypertext Transfer Protocol」の解説の一部です。
「Authorization」を含む「Hypertext Transfer Protocol」の記事については、「Hypertext Transfer Protocol」の概要を参照ください。
- authorizationのページへのリンク