Busco consejos sobre cómo podemos implementar la autenticación y la autorización para multitenancy con un número de escenarios ligeramente diferente.
Estamos construyendo un conjunto de API, algunas de las cuales son accesibles internamente (dentro de la organización) mientras que otras serán accesibles externamente (internet).
Se puede acceder "indirectamente" a los que son accesibles de forma interna y directa dentro de la organización a través de servicios más abstractos que están expuestos externamente.
debido a la naturaleza compleja de nuestro negocio (compañía de telecomunicaciones), los consumidores de las API externas (en inglés) se presentarán en diferentes formas. Algunos serán nuestras subsidiarias, mientras que otros serán terceros, proveedores y desarrolladores.
Supondré que sea un gran consumidor de una organización o un desarrollador de una sola persona, todos son identificables de la misma manera.
La parte difícil ahora es que, en ciertos escenarios, es posible que algunos consumidores no puedan acceder a los recursos expuestos públicamente. ejemplo:
- La subsidiaria X puede acceder a todos los recursos y operaciones de CRUD en el recurso Y
- Sin embargo, la tercera parte Z solo puede recuperar Probablemente me estoy aventurando en el territorio ACL ahora ...
Además, para agregar complejidad al asunto, hay ciertos escenarios de "separación estructural" (impuestos por el gobierno) que justifican la segregación de datos, pero no iré más allá por ese agujero de conejo.
También existe el problema de que varios inquilinos accedan a un sistema que no atiende a multitenidad. :)
Así que hay mucho allí, así que me pregunto cuáles son las opiniones, los consejos y el enfoque de las personas.
Esperamos que auth2.0 junto con OpenID con una solución ACL personalizada pueda funcionar.
EDITAR:
Las disculpas tuvieron problemas con mi dispositivo móvil cuando se publicó la pregunta y se cortó la mitad.
Solo algunos consejos generales para el enfoque.
¿Es esto algo que OpenID y Oauth2 con servidor de derechos podrían atender?