2016-06-21 45 views
10

this one gibi öğreticilerde açıklanan dış OAuth işlemine izin vermek için MVC işlemimi güncellemem gerekiyor. Ancak, bulduğum her öğretici, zaten işlevlerde yerleşik olan facebook/twitter/Microsoft'u kullanıyor. Farklı bir sunucu kullanmam ve bir belirteci geçmem gerekiyor. Ve ben bir müşteriyim, bir sunucu değil.Twitter, facebook veya microsoft olmayan bir MVC projesinde harici OAuth yetkilendirmesini nasıl kullanırım?

Benim kurulum bir girişle, standart SPA projesini kullanıyor ve vb Ben bir API benim gelecek istekler için işaretini tazelemek yenileme jetonu ve mağaza ile bir sayfaya yönlendirme olması gerekir. Bununla bir sorunum yok, ilk OAuth çağrısını yapamam. Ve bu problemle birlikte, I'm not the only one görünüyor. OAuth 2.0 sağlayıcıya bu talebi için

, ben, isteğe bir erişim simgesi eklemek için daha sonra kullanıcı izin verme/reddetme giriş ve tıklayabilirsiniz sahip olacaktır.

POST {TokenPath} HTTP/1.1 
Host: {AuthorizationServer} 
Authorization: Basic {ThirdPartyAuthorizationCode} 
Content-Type: application/x-www-form-urlencoded 

grant_type = authorization_code 

Sonra access_token ile POST ve son kullanma tarihinden itibaren bir yanıt alırsınız.

Yani, ben bunu nasıl yapabilirim?

+0

Bkz: http: //

<AssignMessage name="AssignMessage-SetVariable"> <DisplayName>Assign Message - Set Variable</DisplayName> <AssignVariable> <Name>oauth_external_authorization_status</Name> <Value>true</Value> </AssignVariable> <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables> 

aşağıdaki Linki bakın: Bu değişkeni ayarı için başka bir teknik bu gibi AssignVariable elemanı ile bir AssignMessage politikasını kullanmaktır www.oauthforaspnet.com/ –

+0

@BrendanGreen Merhaba Brendan, teşekkürler ama bu sağlayıcıların hiçbiri bağlanmak istediğim değil. Bu bir iç sunucu. Teşekkürler! – Kat

+0

Bak: [ASP.Net MVC: Bir OAuth şifre hibe türü belirteç son noktası oluşturma] (http://www.hackered.co.uk/articles/asp-net-mvc-creating-an-oauth-password-grant-type -token-endpoint) Bunu daha önce yaptım (farklı bir durumda) bu makalenin faydalı olması durumunda bana tüm cevabımı bir cevap olarak göndermeme izin verin – Hameds

cevap

3

Sen Apigee üçüncü taraf OAuth göstergelerini kullanabilirsiniz. Apigee Edge üçüncü taraf OAuth sistemlerinden belirteçleri kullanmak için bunları yapmak gerekir:

true olarak ayarlanır < ExternalAuthorization> eleman ile belirteçleri üretir OAuthV2 politikasını yapılandırın. Bu öğe yanlış veya mevcut değilse, Edge, client_id ve client_secret öğelerini normal olarak Apigee Edge yetkilendirme deposuna karşı doğrular. İç akış değişkeni oauth_external_authorization_status değerini true olarak ayarlayın. Bu değer yanlışsa (veya değişken mevcut değilse), Edge, üçüncü taraf yetkilendirmesinin başarısız olduğunu ve bir hata iletisi döndürdüğünü varsayar.

Genellikle bu değişken bir üçüncü taraf yetkilendirme hizmetine bir hizmet belirtme çizgisi temelinde doğru veya yanlış olarak ayarlanır. Servis belirtme yanıtına bakabilirsiniz ve buna göre değişkeni ayarlayabilirsiniz. Ayrıntılar için ServiceCallout politikasına bakınız.

Using third-party OAuth tokens

+0

Bunun nerede atandığına ve belirteç değişkenini Oauth yetkilendirme isteğinin başlığına nasıl ekleyeceğime dair net değilim. Bu bir SPA asp.NET uygulamasıdır. Bu kodu nereye ekleyebilirim? Bu webconfig ayarları mı? – Kat