Commit 604098f2 authored by Ricardo Calheiros de Miranda Cosme's avatar Ricardo Calheiros de Miranda Cosme
Browse files

[OPENBUS-2303] Permitir fazer chamadas dentro de cadeias (join) recebidas com...

[OPENBUS-2303] Permitir fazer chamadas dentro de cadeias (join) recebidas com um login diferente, mas da mesma entidade


git-svn-id: https://subversion.tecgraf.puc-rio.br/engdist/openbus/core/branches/02_00_00@142963 ae0415b3-e90b-0410-900d-d0be9363c56b
parent 62a5ec43
......@@ -143,7 +143,7 @@ struct LoginAuthenticationInfo {
\end{description}
Como resultado de um login por senha bem sucedido a operação \code{loginByPassword} devolve a estrutura \code{LoginInfo} contendo o identificador do login e o identificador da entidade autenticada.
Adicionalmente, também é devolvido o tempo mínimo pelo qual o login permanecerá válido sem necessidade de renovação através do parâmetro de saída \code{lease}.
Adicionalmente, também é devolvido o tempo mínimo pelo qual o login permanecerá válido sem necessidade de renovação através do parâmetro de saída \code{validity}.
% subsection login_por_senha (end)
......@@ -159,7 +159,7 @@ Como resultado,
Para concluir o processo de login por certificado é necessário chamar a operação \code{LoginProcess::login} do objeto devolvido na etapa anterior, fornecendo uma chave pública de acesso (\code{pubkey}) e um bloco de dados encriptados (\code{encrypted}) com a chave pública do barramento, que é obtida através do atributo \code{buskey} desta mesma interface.
No caso do login por certificado, os dados desse bloco encriptado é estrutura \code{LoginAuthenticationInfo} codificada em CDR (encapsulado), onde os campos devem ser preenchidos da seguinte forma:
No caso do login por certificado, o dado encriptado é a estrutura \code{LoginAuthenticationInfo} codificada em CDR (encapsulado), onde os campos devem ser preenchidos da seguinte forma:
\begin{description}
\item[Campo \code{hash}] contém o hash SHA-256 do parâmetro \code{pubkey}.
......@@ -167,7 +167,7 @@ No caso do login por certificado, os dados desse bloco encriptado
\end{description}
Similarmente à autenticação por senha, como resultado de um login por certificado bem sucedido, a operação \code{LoginProcess::login} devolve a estrutura \code{LoginInfo} contendo o identificador do login e o identificador da entidade autenticada.
Adicionalmente, também é devolvido o tempo mínimo pelo qual o login permanecerá válido sem necessidade de renovação através do parâmetro de saída \code{lease}.
Adicionalmente, também é devolvido o tempo mínimo pelo qual o login permanecerá válido sem necessidade de renovação através do parâmetro de saída \code{validity}.
% subsection login_por_certificado (end)
......@@ -183,7 +183,7 @@ Como resultado,
Para concluir o processo de login por \term{Single Sign-On} é necessário chamar a operação \code{LoginProcess::login} do objeto devolvido na etapa anterior, fornecendo uma chave pública de acesso (\code{pubkey}) e um bloco de dados encriptados (\code{encrypted}) com a chave pública do barramento, que é obtida através do atributo \code{buskey} desta mesma interface.
No caso do login por \term{Single Sign-On}, os dados desse bloco encriptado é estrutura \code{LoginAuthenticationInfo} codificada em CDR (encapsulado), onde os campos devem ser preenchidos da seguinte forma:
No caso do login por \term{Single Sign-On}, o dado encriptado é a estrutura \code{LoginAuthenticationInfo} codificada em CDR (encapsulado), onde os campos devem ser preenchidos da seguinte forma:
\begin{description}
\item[Campo \code{hash}] contém o hash SHA-256 do parâmetro \code{pubkey}.
......@@ -191,7 +191,7 @@ No caso do login por \term{Single Sign-On}, os dados desse bloco encriptado
\end{description}
Similarmente à autenticação por certificado, como resultado de um login por \term{Single Sign-On} bem sucedido, a operação \code{LoginProcess::login} devolve a estrutura \code{LoginInfo} contendo o identificador do login e o identificador da entidade autenticada.
Adicionalmente, também é devolvido o tempo mínimo pelo qual o login permanecerá válido sem necessidade de renovação através do parâmetro de saída \code{lease}.
Adicionalmente, também é devolvido o tempo mínimo pelo qual o login permanecerá válido sem necessidade de renovação através do parâmetro de saída \code{validity}.
% subsection login_por_singlesignon (end)
......@@ -324,7 +324,7 @@ struct CredentialReset {
\end{samplecode}
\begin{description}
\item[Campo \code{login}] contém o identificador de login que recebeu a chamada.
\item[Campo \code{target}] contém o nome da entidade que recebeu a chamada.
\item[Campo \code{session}] contém um novo identificador da sessão de geração de credenciais correspondente ao segredo fornecido no campo \code{challenge}.
O identificador de sessão gerado deve ser diferente de qualquer sessão de geração de credenciais ativa entre o recebedor da chamada e o iniciador da chamada.
\item[Campo \code{challenge}] contém um novo segredo encriptado com a chave pública de acesso associada ao login que iniciou a chamada.
......@@ -376,15 +376,15 @@ struct SignedCallChain {
// File: access_control.idl
// Name: tecgraf::openbus::core::v2_0::services::access:control::CallChain
struct CallChain {
Identifier target; // Node da entidade a quem a cadeia se destina.
Identifier target; // Nome da entidade a quem a cadeia se destina.
LoginInfoSeq originators; // Informações de login das entidades que realizaram as chamadas em cadeia que originam essa chamada.
LoginInfo caller; // Informações de login da entidades que efetivamente fez chamada atual (última da cadeia).
LoginInfo caller; // Informações de login da entidades que efetivamente fez a chamada atual (última da cadeia).
};
\end{samplecode}
\item[Campo \code{target}] contém o nome da entidade a quem a cadeia está destinada.
Ou seja, esse campo contém o mesmo identificador fornecido pelo campo \code{target} da estrutura \code{CredentialReset} descrito na seção \ref{sub:validacao_da_personalidade} que informa o login do objeto ao qual a chamada se destina.
Esse campo \code{target} da cadeia garante que a cadeia só possa ser utilizada (fazer novas chamadas dentro daquela cadeia) por quem estiver logado como a mesma entidade ao quem ela foi enviada.
Ou seja, esse campo contém o mesmo identificador fornecido pelo campo \code{target} da estrutura \code{CredentialReset} descrito na seção \ref{sub:validacao_da_personalidade} que informa o nome da entidade ao qual a chamada se destina.
Esse campo \code{target} da cadeia garante que a cadeia só possa ser utilizada (fazer novas chamadas dentro daquela cadeia) por quem estiver logado como a mesma entidade a quem ela foi enviada.
\item[Campo \code{originators}] contém uma sequência de informações sobre os vários logins que realizaram as chamadas em cadeia que originam essa chamada.
......@@ -478,6 +478,10 @@ InvalidLoginCode
O login informado não é válido.
Isso ocorre quando o barramento informa a quem recebe a chamada que o login informado na chamada é inválido. \\
InvalidTargetCode
&
O login informado como 'target' da cadeia não é válido. \\
UnverifiedLoginCode
&
Não foi possível verificar o login informado por alguma razão.
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment