La biblioteca cliente de las APIs de Google para .NET usa
client_secrets.json para almacenar
client_id, client_secret y otros parámetros de OAuth 2.0.
Un client_secrets.json
sea un archivo con formato JSON
que contenga el ID de cliente, el secreto de cliente y otros parámetros de OAuth 2.0.
Este es un archivo client_secrets.json de ejemplo para una aplicación web:
{
"web": {
"client_id": "asdfjasdljfasdkjf",
"client_secret": "1912308409123890",
"redirect_uris": ["https://www.example.com/oauth2callback"],
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://accounts.google.com/o/oauth2/token"
}
}
Este es un archivo client_secrets.json de ejemplo para una aplicación instalada:
{
"installed": {
"client_id": "837647042410-75ifg...usercontent.com",
"client_secret":"asdlkfjaskd",
"redirect_uris": ["http://localhost"],
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://accounts.google.com/o/oauth2/token"
}
}El formato define uno de estos dos tipos de ID de cliente:
web: Aplicación web.installed: Aplicación instalada.
Los subobjetos web y installed tienen
los siguientes miembros obligatorios:
-
client_id(string): Es el ID de cliente. -
client_secret(string): El secreto del cliente.
Todos los demás miembros de este archivo son opcionales y la biblioteca cliente .NET no las usa.
Motivación
Tradicionalmente, los proveedores de extremos de OAuth 2.0 esperaban
quienes usan sus servicios para copiar y pegar el ID de cliente
de registro y de cliente desde una página
de registro en un código que funcione.
Este método es propenso a errores y proporciona una imagen incompleta
de la información necesaria para hacer funcionar OAuth 2.0.
(OAuth 2.0 también requiere conocer todos los endpoints,
y configurar un URI de redireccionamiento).
Si los proveedores de servicios ofrecen client_secrets.json descargables
y las bibliotecas cliente están preparadas
para consumir estos archivos
entonces, la implementación de OAuth 2.0 será más fácil y menos propensa a errores.