Udostępnij za pośrednictwem


Ogólne negocjacje dotyczące zabezpieczeń

Koc zabezpieczeń to grupa wartości opisujących ustawienia zabezpieczeń, które mają zastosowanie do wszystkich serwerów proxy w procesie lub tylko do określonego serwera proxy interfejsu. Koc zabezpieczający składa się z następujących wartości:

  • Usługa uwierzytelniania
  • Usługa autoryzacji
  • Główna nazwa
  • Poziom uwierzytelniania
  • Poziom personifikacji
  • Tożsamość uwierzytelniania
  • Możliwości
  • Lista kontroli dostępu (tylko serwery)

Ogólne negocjacje zabezpieczeń to proces używany przez model COM do wybierania ustawień zabezpieczeń serwera proxy podczas jego tworzenia. Ten proces obejmuje porównanie koca zabezpieczeń serwera z kocem zabezpieczeń klienta i użycie tych wartości w celu utworzenia odpowiedniego domyślnego koca zabezpieczeń serwera proxy. W poniższych akapitach wyjaśniono, skąd pochodzą koce zabezpieczeń klienta i serwera, oraz opisano, jak COM negocjuje koc zabezpieczeń serwera proxy przy użyciu zabezpieczeń klienta i serwera.

Klient i serwer mogą wywoływać CoInitializeSecurity, aby określić odpowiednie koce zabezpieczeń. Jeśli aplikacja nie wywołuje jawnie CoInitializeSecurity, com wywołuje ją niejawnie dla aplikacji, używając odpowiednich wartości domyślnych. Aby uzyskać więcej informacji na temat tych wartości domyślnych, zobacz COM Security Defaults.

Niektóre parametry do CoInitializeSecurity mają zastosowanie, gdy aplikacja jest serwerem, a niektóre mają zastosowanie, gdy aplikacja jest klientem. Gdy aplikacja działa jako serwer, te parametry są istotne: lista ACL, lista krotki usługi uwierzytelniania/usługi autoryzacji/głównej nazwy oraz poziom uwierzytelniania. Wywołanie serwera do CoInitializeSecurity, niezależnie od tego, czy niejawne, czy jawne, określa koc zabezpieczeń serwera, który pozostaje stały.

Gdy aplikacja działa jako klient, następujące wartości przekazywane do CoInitializeSecurity są istotne: poziom uwierzytelniania, poziom personifikacji, tożsamość uwierzytelniania i możliwości. Niejawne lub jawne wywołanie klienta do CoInitializeSecurity wskazuje koc zabezpieczeń, który chce klient.

Po utworzeniu serwera proxy com używa wartości określonych przez koc zabezpieczeń serwera i koc zabezpieczeń klienta do negocjowania domyślnego koca zabezpieczeń, który jest odpowiedni dla serwera proxy. Com wybiera usługę uwierzytelniania, która działa zarówno na kliencie, jak i serwerze. Usługa autoryzacji i nazwa główna są wybierane do pracy z usługą uwierzytelniania. W przypadku poziomu uwierzytelniania com wybiera wyższe poziomy uwierzytelniania określone przez klienta i serwer. Poziom personifikacji i możliwości wybrane przez com to te określone przez klienta. Tożsamość uwierzytelniania jest określoną przez klienta dla wybranej usługi uwierzytelniania.

Po obliczeniu domyślnego koca zabezpieczeń jego wartości są przypisywane do nowo utworzonego serwera proxy. Klient może zastąpić ustawienia zabezpieczeń serwera proxy, wywołując IClientSecurity::SetBlanket. Wartości określone SetBlanket nie są negocjowane; są one po prostu przypisane do określonego serwera proxy. Jeśli jednak parametry domyślne (takie jak RPC_C_IMP_LEVEL_DEFAULT) są przekazywane do SetBlanket, com używa wcześniej opisanego algorytmu negocjacji koca zabezpieczeń do obliczenia domyślnych parametrów.

zabezpieczenia w COM