Mam witrynę z włączonymi zabezpieczeniami PKI. Każdy klient korzystał z czytnika kart, aby załadować swój certyfikat lub certyfikat został zainstalowany w magazynie certyfikatu IE na swoim pudełku.Użyj Pythona, aby uzyskać dostęp do strony z zabezpieczeniami PKI
Więc moje pytanie jest:
- W jaki sposób można użyć certyfikatu czytnika kart lub certyfikat zapisany w systemie weryfikacji systemu?
- Jak przekazać dane uwierzytelniające na stronie, aby powiedzieć, hej jestem ja i mogę uzyskać dostęp do usługi? Przykładem mogą być miękkie certyfikaty. Mogę wymyślić część czytnika kart później.
Szukałem w pobliżu i nie znalazłem nic, co mogłoby mi pomóc w tej sytuacji. Django ma kilka modułów, ale to nie jest opcja, ponieważ interesuję się tylko stroną klienta. Nie tworzę strony do hostowania usługi. Muszę po prostu uzyskać dostęp do tych usług.
Mam ten działający rodzaj kodu. Ja po prostu nie wiem, jak obsługiwać przekierowanie Dostaję:
import httplib
KEYFILE = r"C:\cert\my.key"
CERTFILE = r"c:\cert\my.pem"
HOSTNAME = 'machine.com'
conn = httplib.HTTPSConnection(
HOSTNAME,
key_file = KEYFILE,
cert_file = CERTFILE
)
conn.putrequest('GET', '/arcgis/sharing/rest?f=json')
conn.endheaders()
response = conn.getresponse()
print response.read()
Efektem tego wszystkiego jest:
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>302 Found</title>
</head><body>
<h1>Found</h1>
<p>The document has moved <a href="https://machine.com/pki?https://machine.com/arcgis/sharing/rest%3f&f=json">here</a>.</p>
</body></html>
Każda pomoc pod warunkiem, byłoby świetnie! specyfikacje
Program: Python 2.7.8, Windows 2012 R2
Czy możesz podzielić się tym, co dotychczas wypróbowałeś? Rywalizacja na # 1 (uzyskanie certyfikatu) w tej chwili, zakładając, że "autoryzacja PKI" oznacza "uwierzytelnienie certyfikatu klienta", uważam, że # 2 jest wypiekany w bibliotekach, które zawijają https/ssl/tls. Np. W żądaniach używaj: 'requests.get (url, cert = ('path/to/cert', 'path/to/key'))' (przepraszam - nie chciałam pisać jako odpowiedź) – bimsapi
It wygląda na to, że to, co nazywasz "PKI", to tak naprawdę "uwierzytelnianie certyfikatu klienta" (PKI jest szerszym polem niż to i zazwyczaj obejmuje weryfikację certyfikatów serwera). Czy wiesz, czy czytnik kart obsługuje sterowniki PKCS # 11, czy jest to tylko interfejs API systemu Windows? – Bruno
Czy przy okazji zamierzasz używać dowolnych bibliotek w Pythonie? – Bruno